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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
nop
mov eax, dword [ebp + 8]
mov ebx, dword [0x462144]
mov ecx, eax
imul ecx, ecx, 0x34
mov edx, dword [ecx + ebx]
add ecx, ebx
cmp edx, esi
jne 0x42104c
mov esi, dword [ecx + 4]
jmp 0x421050
mov esi, edx
mov edi, edi
mov edx, dword [0x462120]
lea ecx, [esi + esi*2]
shl ecx, 4
cmp dword [ecx + edx + 0x28], 0
lea edi, [ecx + edx]
jne 0x42170f
cmp byte [edi + 0x20], 0
je 0x4211a2
imul eax, eax, 0x34
add eax, ebx
cmp dword [eax], esi
jne 0x421086
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
jmp 0x42108d
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
imul eax, eax, 0x34
add eax, ebx
mov ebx, dword [eax]
cmp ebx, esi
jne 0x42109f
mov ebx, dword [eax + 4]
cmp dword [edi + 0x1c], 0xffffffff
jne 0x4215b2
fld qword [edi]
mov eax, dword [ebp + 0x10]
mov edx, dword [0x462198]
fst qword [esp + 0x60]
fld qword [edi + 8]
lea eax, [eax + eax*2]
fst qword [esp + 0x68]
shl eax, 4
fld qword [edi + 0x10]
mov ecx, dword [eax + edx]
fstp qword [esp + 0x40]
shl ecx, 5
fld qword [eax + edx + 8]
add ecx, dword [0x46216c]
fst qword [esp + 0x58]
fld qword [eax + edx + 0x10]
fst qword [esp + 0x50]
fld qword [eax + edx + 0x18]
fst qword [esp + 0x48]
fld qword [ecx]
fld qword [ecx + 8]
fld st(6)
fsubrp st(2)
fxch st(1)
fmul st(3)
fld st(5)
fsubrp st(2)
fxch st(1)
fmul st(4)
fsubp st(1)
fld qword [eax + edx + 0x20]
fld qword [0x4622e0]
fadd st(1), st(0)
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x421148
fld st(0)
fchs
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x42114a
fxch st(5)
fmulp st(3)
fxch st(3)
fmulp st(1)
faddp st(1)
faddp st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x42115a
fchs
jmp 0x42115a
fstp st(1)
fstp st(5)
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
fld qword [0x462258]
fsub qword [esp + 0x40]
fcompp
fnstsw ax
test ah, 0x41
jp 0x4216cc
mov dword [edi + 0x28], 3
mov edx, dword [0x462120]
lea ecx, [ebx + ebx*2]
shl ecx, 4
mov eax, dword [ecx + edx + 0x28]
cmp eax, 3
je 0x4215c7
test eax, eax
jne 0x42170f
mov eax, dword [esp + 0x24]
mov esi, ebx
mov ebx, dword [0x462144]
mov dword [ebp + 8], eax
lea ecx, [esi + esi*2]
shl ecx, 4
cmp byte [ecx + edx + 0x20], 0
jne 0x421050
mov ebx, dword [ebp + 0x10]
mov ecx, dword [0x462198]
lea eax, [esi + esi*2]
shl eax, 4
add eax, edx
lea ebx, [ebx + ebx*2]
shl ebx, 4
mov edi, dword [ebx + ecx]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x1c]
cmp edi, eax
je 0x421701
cmp dword [ebx + ecx + 4], eax
je 0x421701
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x64]
push edx
push esi
call fcn.00418150
lea eax, [esp + 0x54]
push eax
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x6c]
push edx
push eax
call fcn.00418120
mov ecx, dword [0x462198]
shl edi, 5
add edi, dword [0x46216c]
sub esp, 0x14
fld qword [edi]
lea edx, [esp + 0x90]
fstp qword [esp + 0xa0]
lea eax, [esp + 0xa0]
fld qword [edi + 8]
fstp qword [esp + 0xa8]
fld qword [0x4622e0]
fst qword [esp + 0x28]
fstp qword [esp + 0x20]
fld qword [ebx + ecx + 0x20]
fstp qword [esp + 0x18]
fld qword [esp + 0x78]
fstp qword [esp + 0x10]
fld qword [esp + 0x80]
fstp qword [esp + 8]
fld qword [esp + 0x88]
fstp qword [esp]
push edx
push eax
call fcn.0041e960
fsub qword [esp + 0x78]
add esp, 0x28
fstp qword [esp]
call fcn.004164f0
add esp, 0x10
test al, al
je 0x4216e7
mov ecx, dword [esp + 0x38]
mov ebx, dword [ebp + 8]
push esi
push ebx
mov dword [ecx + 0x28], 3
call fcn.00413930
mov edi, eax
push esi
push ebx
mov dword [esp + 0x34], edi
call fcn.00413950
mov edx, edi
imul edx, edx, 0x34
mov dword [esp + 0x44], eax
mov eax, dword [0x462144]
add esp, 0x10
cmp dword [edx + eax + 4], esi
jne 0x4212e0
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x2c]
push edx
push edi
call fcn.00413900
jmp 0x4212f0
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x2c]
push ecx
push edi
call fcn.004138d0
add esp, 0xc
push esi
push edi
call fcn.00415d00
mov edx, dword [esp + 0x3c]
mov ebx, eax
push esi
push edx
mov dword [esp + 0x4c], ebx
call fcn.00415d00
push ebx
mov dword [esp + 0x4c], eax
call fcn.0041e790
add esp, 0x14
test al, al
je 0x421507
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x24]
push ecx
push edx
push eax
push edi
call fcn.00415740
mov edi, dword [0x462314]
mov ebx, dword [0x462318]
add esp, 0x14
cmp dword [esp + 0x30], 2
jne 0x4213b7
mov ecx, dword [esp + 0x20]
mov edx, dword [0x46216c]
shl ecx, 5
cmp byte [ecx + edx + 0x19], 0
jne 0x4213b7
cmp edi, ebx
jl 0x421396
mov eax, dword [0x462310]
add ebx, 0x400
push 8
push ebx
push eax
mov dword [0x462318], ebx
call fcn.00416410
mov ebx, dword [0x462318]
mov edi, dword [0x462314]
add esp, 0xc
mov dword [0x462310], eax
mov edx, dword [0x462310]
mov ecx, dword [esp + 0x20]
mov dword [edx + edi*8], ecx
mov eax, dword [0x462310]
mov dword [eax + edi*8 + 4], 2
inc edi
mov dword [0x462314], edi
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041e790
add esp, 4
test al, al
je 0x4214c3
cmp dword [esp + 0x2c], 2
jne 0x42143a
mov edx, dword [esp + 0x28]
mov eax, dword [0x46216c]
shl edx, 5
cmp byte [edx + eax + 0x19], 0
jne 0x42143a
cmp edi, ebx
jl 0x421419
mov ecx, dword [0x462310]
add ebx, 0x400
push 8
push ebx
push ecx
mov dword [0x462318], ebx
call fcn.00416410
mov ebx, dword [0x462318]
mov edi, dword [0x462314]
add esp, 0xc
mov dword [0x462310], eax
mov eax, dword [0x462310]
mov edx, dword [esp + 0x28]
mov dword [eax + edi*8], edx
mov ecx, dword [0x462310]
mov dword [ecx + edi*8 + 4], 2
inc edi
mov dword [0x462314], edi
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x30]
push edx
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
call fcn.00415740
add esp, 0x14
cmp dword [esp + 0x30], 2
jne 0x4214c3
mov ecx, dword [esp + 0x20]
mov edx, dword [0x46216c]
shl ecx, 5
cmp byte [ecx + edx + 0x19], 0
jne 0x4214c3
cmp edi, ebx
jl 0x4214a2
mov eax, dword [0x462310]
add ebx, 0x400
push 8
push ebx
push eax
mov dword [0x462318], ebx
call fcn.00416410
mov edi, dword [0x462314]
add esp, 0xc
mov dword [0x462310], eax
mov edx, dword [0x462310]
mov ecx, dword [esp + 0x20]
mov dword [edx + edi*8], ecx
mov eax, dword [0x462310]
mov dword [eax + edi*8 + 4], 2
inc edi
mov dword [0x462314], edi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
push eax
call fcn.0041e7b0
add esp, 4
test al, al
je 0x4214e6
mov ecx, dword [ebp + 0x10]
push ecx
push esi
push edi
call fcn.00421020
add esp, 0xc
mov edx, dword [esp + 0x38]
push edx
call fcn.0041e7b0
add esp, 4
test al, al
je 0x42170f
mov eax, dword [esp + 0x34]
mov dword [ebp + 8], eax
jmp 0x421030
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041e790
add esp, 4
test al, al
je 0x4214c7
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x30]
push edx
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
call fcn.00415740
add esp, 0x14
cmp dword [esp + 0x30], 2
jne 0x4214c7
mov ebx, dword [esp + 0x20]
mov edx, dword [0x46216c]
mov ecx, ebx
shl ecx, 5
cmp byte [ecx + edx + 0x19], 0
jne 0x4214c7
mov eax, dword [0x462314]
mov ecx, dword [0x462318]
cmp eax, ecx
jl 0x421590
mov eax, dword [0x462310]
add ecx, 0x400
push 8
push ecx
push eax
mov dword [0x462318], ecx
call fcn.00416410
mov dword [0x462310], eax
mov eax, dword [0x462314]
add esp, 0xc
mov ecx, dword [0x462310]
mov dword [ecx + eax*8], ebx
mov edx, dword [0x462310]
mov dword [edx + eax*8 + 4], 2
inc eax
mov dword [0x462314], eax
jmp 0x4214c7
lea ecx, [esi + esi*2]
shl ecx, 4
mov dword [ecx + edx + 0x28], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
mov edx, dword [0x462144]
imul eax, eax, 0x34
mov ecx, dword [eax + edx + 8]
mov esi, dword [eax + edx + 0xc]
mov ebx, dword [eax + edx + 0x10]
mov edi, dword [eax + edx + 0x14]
add eax, edx
cmp ecx, 2
jne 0x421653
mov ecx, dword [0x46216c]
mov eax, esi
shl eax, 5
cmp byte [eax + ecx + 0x19], 0
mov eax, dword [0x462314]
jne 0x421658
mov ecx, dword [0x462318]
cmp eax, ecx
jl 0x421634
mov edx, dword [0x462310]
add ecx, 0x400
push 8
push ecx
push edx
mov dword [0x462318], ecx
call fcn.00416410
mov dword [0x462310], eax
mov eax, dword [0x462314]
add esp, 0xc
mov ecx, dword [0x462310]
mov dword [ecx + eax*8], esi
mov edx, dword [0x462310]
mov dword [edx + eax*8 + 4], 2
inc eax
mov dword [0x462314], eax
jmp 0x421658
mov eax, dword [0x462314]
cmp ebx, 2
jne 0x42170f
mov edx, dword [0x46216c]
mov ecx, edi
shl ecx, 5
cmp byte [ecx + edx + 0x19], 0
jne 0x42170f
mov ecx, dword [0x462318]
cmp eax, ecx
jl 0x4216a8
mov eax, dword [0x462310]
add ecx, 0x400
push 8
push ecx
push eax
mov dword [0x462318], ecx
call fcn.00416410
mov dword [0x462310], eax
mov eax, dword [0x462314]
add esp, 0xc
mov ecx, dword [0x462310]
mov dword [ecx + eax*8], edi
mov edx, dword [0x462310]
mov dword [edx + eax*8 + 4], 2
inc eax
mov dword [0x462314], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x462120]
lea eax, [esi + esi*2]
shl eax, 4
mov dword [eax + ecx + 0x28], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x462120]
lea edx, [esi + esi*2]
shl edx, 4
mov dword [edx + eax + 0x28], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi + esi*2]
shl ecx, 4
mov dword [ecx + edx + 0x28], 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret