Function at 0x412270
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x44ea49
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebx
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
lea eax, [edi + 0xc0]
mov ecx, dword [eax]
mov edx, dword [esp + 0x108]
cmp edx, ecx
jg 0x4122e9
jne 0x4122c0
mov ecx, dword [esp + 0x104]
mov edx, dword [eax - 0x20]
cmp ecx, edx
jg 0x4122e9
inc ebx
add eax, 4
cmp ebx, 8
jl 0x4122a3
mov dword [esp + 0xc], ebx
or eax, 0xffffffff
mov ecx, dword [esp + 0xf0]
pop edi
pop ebx
mov dword fs:[0], ecx
add esp, 0xf4
ret 0x14
push ebp
push esi
mov esi, 7
mov dword [esp + 0x14], ebx
cmp ebx, esi
jge 0x4125d9
lea eax, [edi + 0x158]
lea ebp, [edi + 0xbc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], ebp
jmp 0x412316
mov eax, dword [esp + 0x18]
lea edx, [eax - 0xe0]
lea ecx, [eax - 0xcc]
push edx
call fcn.0042c850
mov eax, dword [ebp - 4]
mov dword [ebp], eax
mov eax, dword [esp + 0x18]
push eax
lea ecx, [eax + 0x14]
call fcn.0042c850
mov eax, dword [esp + 0x114]
mov ecx, dword [ebp + 0x1c]
test eax, eax
mov dword [ebp + 0x20], ecx
je 0x4125be
push 0x80
lea ecx, [esp + 0x3c]
call fcn.0042c180
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x100], 0
test ebp, ebp
je 0x412378
mov eax, ebp
jmp 0x412398
push 0x7fffffff
push str.Games_
lea ecx, [esp + 0x54]
call fcn.0042c200
or dword [esp + 0x10], 1
mov byte [esp + 0x100], 1
push eax
lea ecx, [esp + 0x3c]
call fcn.0042c9f0
mov al, byte [esp + 0x10]
mov dword [esp + 0x100], 0
test al, 1
je 0x4123c8
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x4c]
and al, 0xfe
mov dword [esp + 0x10], eax
call fcn.0042c2b0
push str.High
lea ecx, [esp + 0x3c]
call fcn.0042ca70
lea edi, [esi + 1]
mov eax, 0x66666667
imul edi
mov eax, edx
mov ecx, 0xa
sar eax, 2
mov edx, eax
shr edx, 0x1f
add eax, edx
cdq
idiv ecx
lea ecx, [esp + 0x38]
add dl, 0x30
push edx
call fcn.0042caf0
mov eax, edi
mov ecx, 0xa
cdq
idiv ecx
lea ecx, [esp + 0x38]
add dl, 0x30
push edx
call fcn.0042caf0
push str..game
lea ecx, [esp + 0x3c]
call fcn.0042ca70
lea edx, [esp + 0x38]
push 0
push edx
lea ecx, [esp + 0xa8]
call fcn.00424200
lea eax, [esp + 0xa0]
mov byte [esp + 0x100], 2
push eax
call fcn.00424600
add esp, 4
lea ecx, [esp + 0x1c]
push 0x80
call fcn.0042c180
test ebp, ebp
mov byte [esp + 0x100], 3
je 0x41246f
mov eax, ebp
jmp 0x41248f
push 0x7fffffff
push str.Games_
lea ecx, [esp + 0x68]
call fcn.0042c200
or dword [esp + 0x10], 2
mov byte [esp + 0x100], 4
push eax
lea ecx, [esp + 0x20]
call fcn.0042c9f0
mov al, byte [esp + 0x10]
mov dword [esp + 0x100], 3
test al, 2
je 0x4124bf
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x60]
and al, 0xfd
mov dword [esp + 0x10], eax
call fcn.0042c2b0
push str.High
lea ecx, [esp + 0x20]
call fcn.0042ca70
mov eax, 0x66666667
imul esi
mov eax, edx
sar eax, 2
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
mov ecx, 0xa
cdq
idiv ecx
lea ecx, [esp + 0x1c]
add dl, 0x30
push edx
call fcn.0042caf0
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
lea ecx, [esp + 0x1c]
add dl, 0x30
push edx
call fcn.0042caf0
push str..game
lea ecx, [esp + 0x20]
call fcn.0042ca70
lea edx, [esp + 0x1c]
push 0
push edx
lea ecx, [esp + 0x7c]
call fcn.00424200
lea eax, [esp + 0x38]
lea ecx, [esp + 0x74]
push eax
push ecx
mov byte [esp + 0x108], 5
call fcn.00424650
add esp, 8
lea ecx, [esp + 0x8c]
mov byte [esp + 0x100], 6
call fcn.0042c2b0
lea ecx, [esp + 0x78]
mov byte [esp + 0x100], 3
call fcn.0042c2b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 2
call fcn.0042c2b0
lea ecx, [esp + 0xb8]
mov byte [esp + 0x100], 7
call fcn.0042c2b0
lea ecx, [esp + 0xa4]
mov byte [esp + 0x100], 0
call fcn.0042c2b0
lea ecx, [esp + 0x38]
mov dword [esp + 0x100], 0xffffffff
call fcn.0042c2b0
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
dec esi
sub ebp, 4
sub ecx, 0x14
cmp esi, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x18], ecx
jg 0x412312
mov eax, dword [esp + 0x108]
lea edx, [ebx + ebx*4]
push eax
lea esi, [edi + edx*4]
mov ecx, esi
call fcn.0042c850
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0x110]
mov dword [edi + ebx*4 + 0xa0], ecx
mov dword [edi + ebx*4 + 0xc0], edx
mov edi, dword [edi + ebx*4 + 0xa0]
push esi
lea ecx, [esp + 0x20]
lea ebp, [esi + 0xe0]
call fcn.0042c1d0
push edi
lea ecx, [esp + 0x20]
mov dword [esp + 0x104], 8
call fcn.0042cb40
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x1c]
push eax
call fcn.0042cb40
mov edx, dword [esp + 0x20]
test edx, edx
je 0x412654
lea eax, [edx + 1]
jmp 0x412656
xor eax, eax
mov esi, dword [esp + 0x24]
xor ecx, ecx
test esi, esi
jle 0x412675
mov dl, byte [eax]
xor dl, 0x51
mov byte [eax], dl
mov esi, dword [esp + 0x24]
inc eax
inc ecx
cmp ecx, esi
jl 0x412660
mov edx, dword [esp + 0x20]
test edx, edx
je 0x41267e
lea eax, [edx + 1]
jmp 0x412680
xor eax, eax
lea ecx, [esp + 0x38]
push ecx
push esi
push eax
call fcn.004154d0
add esp, 0xc
mov ecx, ebp
push 0x10
call fcn.0042c920
push 0x10
mov ecx, ebp
call fcn.0042c5b0
test eax, eax
je 0x4126d3
lea esi, [esp + 0x38]
mov ecx, eax
sub esi, eax
mov edi, 0x10
xor eax, eax
mov ebx, 0x1a
mov al, byte [esi + ecx]
cdq
idiv ebx
add dl, 0x41
mov byte [ecx], dl
inc ecx
dec edi
jne 0x4126b2
mov ecx, ebp
call fcn.0042c5e0
mov ebx, dword [esp + 0x14]
push 0x10
mov ecx, ebp
call fcn.0042c2d0
or ebp, 0xffffffff
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], ebp
call fcn.0042c2b0
mov edi, dword [esp + 0x114]
test edi, edi
je 0x41283a
mov ecx, dword [esp + 0x34]
call fcn.00411fc0
push 0x80
lea ecx, [esp + 0x50]
call fcn.0042c180
mov eax, dword [esp + 0x118]
mov esi, 9
test eax, eax
mov dword [esp + 0x100], esi
jne 0x41274c
push 0x7fffffff
push str.Games_
lea ecx, [esp + 0x68]
call fcn.0042c200
or dword [esp + 0x10], 4
mov byte [esp + 0x100], 0xa
push eax
lea ecx, [esp + 0x50]
call fcn.0042c9f0
mov al, byte [esp + 0x10]
mov dword [esp + 0x100], esi
test al, 4
je 0x41276e
lea ecx, [esp + 0x60]
call fcn.0042c2b0
push str.High
lea ecx, [esp + 0x50]
call fcn.0042ca70
lea esi, [ebx + 1]
mov eax, 0x66666667
imul esi
mov eax, edx
mov ecx, 0xa
sar eax, 2
mov edx, eax
shr edx, 0x1f
add eax, edx
cdq
idiv ecx
lea ecx, [esp + 0x4c]
add dl, 0x30
push edx
call fcn.0042caf0
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
lea ecx, [esp + 0x4c]
add dl, 0x30
push edx
call fcn.0042caf0
push str..game
lea ecx, [esp + 0x50]
call fcn.0042ca70
lea edx, [esp + 0x4c]
push 0
push edx
lea ecx, [esp + 0xd4]
call fcn.00424200
lea eax, [esp + 0xcc]
mov byte [esp + 0x100], 0xb
push eax
call fcn.00424600
lea ecx, [esp + 0x50]
push ecx
push edi
call fcn.00424650
add esp, 0xc
lea ecx, [esp + 0xe4]
mov byte [esp + 0x100], 0xc
call fcn.0042c2b0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x100], 9
call fcn.0042c2b0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x100], ebp
call fcn.0042c2b0
pop esi
mov eax, ebx
pop ebp
jmp 0x4122d0