Function at 0x4225e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x422b12
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x24]
call fcn.004223b0
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 1
jge 0x42267a
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x24]
jge 0x422643
mov eax, dword [ebp - 0x3c]
add eax, 0x1f1
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x30]
jne 0x422658
imul eax, dword [ebp - 0x34], 0xd8
mov dword [ebp - 0x30], eax
mov eax, 0x3c
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x3e0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 1
jl 0x42261f
mov eax, 0x55
sub eax, dword [ebp - 0x28]
cmp eax, 0xf5
jge 0x42269b
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x44]
call fcn.004223b0
mov eax, dword [ebp - 0x3c]
add eax, 0x1e0
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c70
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c70
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x38]
call fcn.00404c70
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x38]
call fcn.00404c70
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
sub dword [ebp - 0x40], 0x296
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x34]
jne 0x422711
fild dword [ebp - 0x34]
call fcn.00404c64
mov dword [ebp - 0x30], eax
mov eax, 0x40
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 0x3c4
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jne 0x4226f4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x24]
call fcn.004223b0
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x4228b2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x78], 0
je 0x4228a8
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x24]
call fcn.004223b0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x24]
call fcn.004223b0
imul eax, dword [ebp - 0x24], 0x2e4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x1d8
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x1dc
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x40]
add eax, 0x221
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
add eax, 0x205
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x209
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x1ed
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x78]
add eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x4228a8
inc eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
add eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4]
add eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0x1c]
mov ecx, 0
call fcn.004073dc
mov eax, dword [ebp - 0x50]
call fcn.00421b88
cmp eax, dword [ebp - 8]
jne 0x4228a0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x24]
add eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
movzx eax, word [eax + edx*2]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
add eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + edx*4]
add eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
jmp 0x4228a8
inc dword [ebp - 0x18]
dec dword [ebp - 0x48]
jne 0x422844
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4228f2
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x34]
cmp eax, edx
jge 0x422914
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x24]
call fcn.004223b0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jle 0x42292e
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x24]
call fcn.004223b0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x24]
call fcn.004223b0
mov ecx, 1
mov edx, 0x422b30
mov eax, 0x422b50
call fcn.00407d88
cmp eax, 0x1e
je 0x422964
mov eax, dword [ebp - 0x40]
add eax, 0x217
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x44]
sub eax, 0x27c
mov dword [ebp - 0x40], eax
imul eax, dword [ebp - 0x44], 0x2a0
mov dword [ebp - 0x40], eax
imul eax, dword [ebp - 0x44], 0x2a4
mov dword [ebp - 0x40], eax
imul eax, dword [ebp - 0x44], 0x288
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
sub eax, 0x28d
mov dword [ebp - 0x40], eax
imul eax, dword [ebp - 0x44], 0x291
mov dword [ebp - 0x40], eax
imul eax, dword [ebp - 0x44], 0x275
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
sub eax, 0x279
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
imul eax, dword [ebp - 0x30], 0xcd
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x44]
jle 0x4229f0
mov eax, dword [ebp - 0x3c]
add eax, 0x1b6
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c64
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x38]
cmp eax, edx
jle 0x422a0b
fild dword [ebp - 0x34]
call fcn.00404c64
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov edx, eax
shl eax, 6
add eax, edx
mov dword [ebp - 0x28], eax
mov eax, 5
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 0x3a9
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jne 0x4229cf
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 1
jge 0x422a9a
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x44]
jle 0x422a64
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c70
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x38]
cmp eax, edx
jle 0x422a7e
imul eax, dword [ebp - 0x30], 0x9b
mov dword [ebp - 0x2c], eax
mov eax, 0x3df
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x382
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 1
jl 0x422a42
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x44]
jle 0x422abe
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
call fcn.00404c70
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x38]
cmp eax, edx
jle 0x422ad9
mov eax, 0x54
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x3b8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jne 0x422a9f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x422b19
lea eax, [ebp - 0x50]
call fcn.00406e08
ret