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

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x3b0]
test eax, eax
push edi
je 0x423bfb
fld qword [0x489c90]
jmp 0x423c01
fld qword [0x489c88]
mov edi, dword [esi + 0x3bc]
xor eax, eax
test edi, edi
sete al
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [esi + 0x30]
fmul st(1)
call fcn.004607d4
fstp st(0)
mov ebp, eax
push esi
mov dword [esp + 0x14], ebp
call fcn.0042d2d0
mov edi, eax
add esp, 4
test edi, edi
mov ebx, 7
je 0x423c70
cmp dword [edi + 0x374], ebx
je 0x423c6e
mov eax, dword [edi + 0x344]
test eax, eax
jne 0x423c6e
push 6
call fcn.00401610
add esp, 4
test al, al
je 0x423c64
mov eax, dword [edi + 0x8c]
jmp 0x423c6a
mov eax, dword [edi + 0x90]
test eax, eax
jne 0x423c70
xor edi, edi
mov al, byte [esi + 0x98]
test al, al
je 0x423c9d
test edi, edi
je 0x423c8c
mov ecx, dword [esi + 0x9c]
cmp ecx, dword [esi + 0x398]
jae 0x423c9d
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 4
cmp dword [esi + 0x374], ebx
mov ecx, 1
jne 0x423d14
mov eax, dword [esi + 0x78]
cmp eax, dword [esi + 0x398]
jae 0x4244a5
test edi, edi
jne 0x4244a5
mov eax, dword [esi + 0x80]
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x58]
mov dword [esi + 0x30], edx
mov edx, dword [esi + 0x54]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x320]
test eax, eax
mov dword [esi + 0x44], edx
mov edx, dword [esi + 0x380]
mov dword [esi + 0x374], edx
mov dword [esi + 0x90], ecx
je 0x423d04
mov eax, dword [esi + 0x38]
mov dword [esi + 0x94], ecx
mov dword [esi + 0x30], eax
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
jmp 0x423d18
test edi, edi
jne 0x423d34
fld dword [esi + 0x7c]
fcomp dword [esi + 0x80]
fnstsw ax
test ah, 5
jp 0x423d34
fld dword [esi + 0x7c]
fadd dword [0x489588]
fstp dword [esi + 0x7c]
cmp dword [esi + 0x374], ecx
jne 0x423d48
mov ecx, dword [esi + 0x378]
mov dword [esi + 0x374], ecx
mov edx, dword [esi + 0x2c]
cmp edx, dword [esi + 0x398]
jae 0x423d88
mov edx, dword [esi + 0x28]
xor eax, eax
test edx, edx
sete al
mov dword [esi + 0x28], eax
call fcn.0046001a
cdq
mov ecx, 5
idiv ecx
mov eax, dword [esi + 0x398]
mov ecx, esi
add edx, 3
imul edx, edx, 0x3e8
add edx, eax
mov dword [esi + 0x2c], edx
call fcn.004029f0
mov edx, dword [esi]
mov ecx, esi
xor ebx, ebx
call dword [edx + 0x20]
mov edi, eax
mov eax, dword [esi + 0x374]
add eax, 0xfffffffe
cmp eax, 7
mov dword [esp + 0x14], edi
ja case.0x423da9.3
jmp dword [eax*4 + 0x4244b0]
mov eax, dword [esi + 0x24]
cmp eax, 3
ja case.default.0x423db8
jmp dword [eax*4 + 0x4244d0]
mov ecx, esi
call fcn.00403db0
test eax, eax
jne case.default.0x423db8
sub dword [esi + 0x44], ebp
jmp case.default.0x423db8
mov ecx, esi
call fcn.00403db0
test eax, eax
jne case.default.0x423db8
add dword [esi + 0x44], ebp
jmp case.default.0x423db8
mov eax, dword [esi + 0x48]
add eax, ebp
jmp 0x423deb
mov eax, dword [esi + 0x48]
sub eax, ebp
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x31c]
test eax, eax
je case.0x423da9.3
mov ecx, esi
call fcn.00403db0
test eax, eax
je 0x423e5d
mov eax, dword [esi + 0x2f4]
test eax, eax
je 0x423fbb
mov ecx, esi
call fcn.00403bd0
test eax, eax
je 0x423fbb
mov ecx, esi
call fcn.00402ae0
test eax, eax
jne 0x423e4d
mov eax, dword [esi + 0x310]
test eax, eax
je 0x423fbb
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x24]
test eax, eax
je 0x423fbb
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x374], 4
mov dword [esi + 0x6c], ecx
mov eax, dword [esi + 0x24]
cmp eax, 1
mov ebp, 0x10
jne 0x423e6d
add dword [esi + 0x44], ebp
test eax, eax
mov edi, 0xfffffff0
jne 0x423e79
add dword [esi + 0x44], edi
mov ecx, esi
call fcn.00405d10
cmp eax, ebp
jle 0x423f02
mov eax, dword [esi + 0x300]
test eax, eax
je 0x423eb1
mov ecx, esi
call fcn.00405d10
cmp eax, 0x7fffffff
je 0x423eb1
mov eax, dword [esi + 0x300]
test eax, eax
je 0x423eb6
mov ecx, esi
call fcn.00402ae0
test eax, eax
jne 0x423eb6
mov ebx, 1
mov eax, dword [esi + 0x2f8]
test eax, eax
je 0x423f02
mov ecx, esi
call fcn.00403a40
test eax, eax
je 0x423f02
mov ecx, esi
call fcn.00402ae0
test eax, eax
jne 0x423ef0
mov eax, dword [esi + 0x310]
test eax, eax
je 0x423f02
mov eax, dword [esp + 0x14]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x24]
test eax, eax
je 0x423f02
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x374], 5
mov dword [esi + 0x6c], ecx
xor ebx, ebx
mov eax, dword [esi + 0x24]
cmp eax, 1
jne 0x423f0d
add dword [esi + 0x44], edi
test eax, eax
jne 0x423f14
add dword [esi + 0x44], ebp
test ebx, ebx
je 0x423f1f
mov ecx, esi
call fcn.00402d60
mov eax, dword [esi + 0x2fc]
test eax, eax
je case.0x423da9.3
mov ecx, esi
call fcn.00403f40
test eax, eax
je case.0x423da9.3
mov eax, dword [esi + 0x84]
test eax, eax
jne case.0x423da9.3
mov eax, dword [esi + 0x360]
cmp eax, 2
jne 0x423f60
mov edx, dword [esi + 0x24]
cmp edx, dword [esi + 0x364]
je 0x423f78
cmp eax, 3
jne case.0x423da9.3
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x364]
je case.0x423da9.3
mov ecx, esi
call fcn.00402ae0
test eax, eax
je case.0x423da9.3
mov eax, dword [esi + 0x310]
test eax, eax
je 0x423fa5
mov eax, dword [esp + 0x14]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x24]
test eax, eax
jne case.0x423da9.3
mov ecx, esi
mov dword [esi + 0x374], 6
call fcn.00404210
jmp case.0x423da9.3
mov ecx, esi
xor edi, edi
call fcn.00403db0
test eax, eax
je 0x42402b
mov eax, dword [esi + 0x24]
sub eax, 0
je 0x423fd9
dec eax
jne 0x423fe0
mov eax, dword [esi + 0x44]
dec eax
jmp 0x423fdd
mov eax, dword [esi + 0x44]
inc eax
mov dword [esi + 0x44], eax
inc edi
cmp edi, 0x186a0
jge 0x423ff6
mov ecx, esi
call fcn.00403db0
test eax, eax
jne 0x423fc8
jmp 0x42402b
mov eax, dword [0xff3d90]
test eax, eax
je 0x42402b
push str.tries_100000
push 0x489b0c
call fcn.0040f390
mov ecx, dword [0xff3d90]
add esp, 8
call fcn.00403240
mov ecx, dword [0xff3d90]
mov eax, dword [ecx + 0x7c]
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
mov eax, dword [esi + 0x44]
test eax, eax
jl 0x424039
cmp eax, 0x320
jl 0x42406e
mov eax, dword [0xff3d90]
test eax, eax
je 0x42406e
push str.x_0x_SCREEN_SIZE_X
push 0x489b0c
call fcn.0040f390
mov ecx, dword [0xff3d90]
add esp, 8
call fcn.00403240
mov ecx, dword [0xff3d90]
mov eax, dword [ecx + 0x7c]
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
mov ecx, esi
call fcn.00402d60
jmp case.0x423da9.3
cmp dword [esi + 0x24], 1
mov eax, dword [esi + 0x44]
jne 0x424094
add eax, ebp
mov ecx, esi
mov dword [esi + 0x44], eax
call fcn.004042c0
jmp case.0x423da9.3
sub eax, ebp
mov ecx, esi
mov dword [esi + 0x44], eax
call fcn.004042c0
jmp case.0x423da9.3
mov ecx, esi
call fcn.00403db0
test eax, eax
jne case.0x423da9.3
mov eax, dword [esi + 0x24]
test eax, eax
mov eax, dword [esi + 0x44]
jne 0x4240c5
sub eax, ebp
jmp 0x4241f4
add eax, ebp
jmp 0x4241f4
mov eax, dword [esi + 0x24]
sub eax, 0
je 0x4240e9
dec eax
jne 0x4240fc
mov ecx, esi
call fcn.00403db0
test eax, eax
jne 0x4240fc
mov eax, dword [esi + 0x44]
add eax, ebp
jmp 0x4240f9
mov ecx, esi
call fcn.00403db0
test eax, eax
jne 0x4240fc
mov eax, dword [esi + 0x44]
sub eax, ebp
mov dword [esi + 0x44], eax
mov ecx, esi
call fcn.00403db0
test eax, eax
je case.0x423da9.3
mov ecx, esi
call fcn.00402d60
jmp case.0x423da9.3
mov edx, dword [esi + 0x68]
mov ecx, dword [esi + 0x60]
cmp ecx, edx
mov dword [esp + 0x18], edx
je case.0x423da9.3
mov ebp, dword [esi + 0x64]
mov edi, dword [esi + 0x5c]
cmp edi, ebp
mov dword [esp + 0x28], ebp
je case.0x423da9.3
fld dword [0x489b50]
fld dword [esi + 0x30]
fucompp
fnstsw ax
test ah, 0x44
jnp case.0x423da9.3
sub ecx, edx
sub edi, ebp
mov eax, edi
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp ebx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edi
jle 0x4241b2
cmp dword [esi + 0x5c], ebp
jle 0x424184
mov eax, dword [esi + 0x44]
mov edx, dword [esp + 0x10]
add eax, edx
mov dword [esi + 0x44], eax
jmp 0x424190
mov edx, dword [esi + 0x44]
mov eax, dword [esp + 0x10]
sub edx, eax
mov dword [esi + 0x44], edx
mov edx, dword [esi + 0x44]
sub edx, ebp
imul edx, ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fidiv dword [esp + 0x1c]
fiadd dword [esp + 0x18]
call fcn.004607d4
mov dword [esi + 0x48], eax
jmp case.0x423da9.3
mov ecx, dword [esi + 0x60]
mov eax, dword [esp + 0x18]
cmp ecx, eax
jle 0x4241cb
mov edx, dword [esi + 0x48]
mov ecx, dword [esp + 0x10]
add edx, ecx
mov dword [esi + 0x48], edx
jmp 0x4241d7
mov ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x10]
sub ecx, edx
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x48]
sub ecx, eax
imul ecx, edi
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fidiv dword [esp + 0x20]
fiadd dword [esp + 0x28]
call fcn.004607d4
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x44]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax]
xor edi, edi
cmp edx, 0x320
jle 0x424229
mov ebp, dword [esi + 0x360]
xor edx, edx
cmp ebp, 2
sete dl
mov dword [esi + 0x24], edi
add edx, 2
mov dword [esi + 0x360], edx
sub ecx, eax
jns 0x42424b
mov edx, dword [esi + 0x360]
xor eax, eax
cmp edx, 2
sete al
mov dword [esi + 0x24], 1
add eax, 2
mov dword [esi + 0x360], eax
mov ebx, dword [esp + 0x14]
cmp ebx, edi
mov ebp, dword [esp + 0x34]
je 0x42443a
mov eax, dword [esi + 0x374]
cmp eax, 2
je 0x424274
cmp eax, 9
je 0x424274
cmp eax, 8
jne 0x42443a
cmp dword [esi + 0x304], edi
jne 0x424288
cmp dword [esi + 0x30c], edi
je 0x424468
cmp dword [esi + 0x88], edi
je 0x424325
cmp dword [esi + 0x84], edi
jne 0x424331
push ebx
mov ecx, esi
call fcn.00405cd0
test eax, eax
jne 0x4242dc
cmp dword [esi + 0x354], edi
jne 0x4242dc
cmp dword [esi + 0x308], edi
mov dword [esi + 0x84], edi
jne 0x424325
fld dword [0x489b50]
fld dword [esi + 0x30]
fucompp
fnstsw ax
test ah, 0x44
jp 0x424325
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x30], ecx
jmp 0x424325
cmp dword [esi + 0x308], edi
jne 0x4242ff
fld dword [0x489b50]
fld dword [esi + 0x30]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4242ff
mov edx, dword [esi + 0x30]
mov dword [esi + 0x34], edx
mov dword [esi + 0x30], edi
cmp dword [esi + 0x31c], edi
je 0x42431b
push ebx
mov ecx, esi
call fcn.00402db0
cmp dword [esi + 0x24], eax
je 0x42431b
mov ecx, esi
call fcn.00402d60
mov dword [esi + 0x84], 1
cmp dword [esi + 0x84], edi
je 0x424468
cmp dword [esi + 0x88], edi
je 0x4243d9
push str.StrikeHit
lea eax, [esi + 4]
push eax
mov ecx, ebp
call fcn.00424d80
push eax
call fcn.00460712
add esp, 8
test eax, eax
jne 0x4243d9
cmp dword [esi + 0x310], edi
je 0x424399
fild dword [esi + 0x44]
lea ecx, [esp + 0x28]
fild dword [esi + 0x48]
push ecx
fild dword [ebx + 0x44]
fild dword [ebx + 0x48]
fstp dword [esp + 0x28]
fsub st(2)
fstp dword [esp + 0x2c]
fld dword [esp + 0x28]
fsub st(1)
fstp dword [esp + 0x30]
fstp st(0)
fstp st(0)
call fcn.004334a0
add esp, 4
jmp 0x4243a9
mov ecx, dword [esi + 0x24]
xor eax, eax
cmp ecx, edi
setne al
dec eax
and eax, 0xb4
push 1
lea edx, [esp + 0x38]
push edx
lea ecx, [esi + 0xa4]
push ecx
push eax
push esi
call fcn.004360b0
mov edx, dword [esi + 0x398]
mov eax, dword [esp + 0x48]
add esp, 0x14
add edx, eax
mov dword [esi + 0x3a0], edx
mov dword [esi + 0x88], edi
push 0x48ce28
lea eax, [esi + 4]
push eax
mov ecx, ebp
call fcn.00424d80
push eax
call fcn.00460712
add esp, 8
test eax, eax
jne 0x424468
cmp dword [esi + 0x308], edi
mov dword [esi + 0x84], edi
jne 0x42441c
fld dword [0x489b50]
fld dword [esi + 0x30]
fucompp
fnstsw ax
test ah, 0x44
jp 0x42441c
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x30], ecx
cmp dword [esi + 0x31c], edi
je 0x424468
push ebx
mov ecx, esi
call fcn.00402db0
cmp dword [esi + 0x24], eax
je 0x424468
mov ecx, esi
call fcn.00402d60
jmp 0x424468
cmp dword [esi + 0x84], edi
je 0x424468
cmp dword [esi + 0x308], edi
mov dword [esi + 0x84], edi
jne 0x424468
fld dword [0x489b50]
fld dword [esi + 0x30]
fucompp
fnstsw ax
test ah, 0x44
jp 0x424468
mov edx, dword [esi + 0x34]
mov dword [esi + 0x30], edx
cmp dword [esi + 0x304], edi
jne 0x424478
cmp dword [esi + 0x30c], edi
je 0x42449d
mov eax, dword [esi + 0xa4]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [eax + esi + 0xd4]
cmp ecx, dword [esi + 0x398]
jae 0x42449d
mov dword [esi + 0x88], 1
push ebp
mov ecx, esi
call fcn.00404c70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 4