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

Disassembly:
sub esp, 0x164
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x178]
fld dword [edi + 0x13b4]
mov eax, dword [edi + 0x1418]
fld dword [esp + 0x17c]
mov esi, dword [eax + 0x10]
xor ecx, ecx
fld st(0)
cmp dword [edi + 0x1e8], 1
fmulp st(2)
fxch st(1)
setne cl
mov dword [esp + 0x1c], ecx
call fcn.00499690
fmul dword [edi + 0x13b8]
mov ebp, eax
mov dword [esp + 0x20], ebp
call fcn.00499690
mov ebx, dword [edi + 0x105c]
and ebx, dword [edi + 0x1058]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
test esi, esi
je 0x4719a6
mov edx, dword [esi + 0x28]
mov dword [esp + 0x28], edx
mov eax, ebx
and eax, 0x800
neg eax
sbb eax, eax
and eax, 0xffffffd8
add eax, 0x48
push eax
mov ecx, ebx
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xffffffcd
add ecx, 0x53
push ecx
mov edx, ebx
and edx, 0x200
neg edx
sbb edx, edx
and edx, 0xffffffd2
add edx, 0x4e
push edx
mov eax, ebx
and eax, 0x100
neg eax
sbb eax, eax
and eax, 0xffffffd8
add eax, 0x48
push eax
mov ecx, ebx
and cl, 0x80
movsx edx, cl
neg edx
sbb edx, edx
and edx, 0xffffffcd
add edx, 0x53
push edx
mov eax, ebx
and al, 0x40
movsx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xffffffd2
add ecx, 0x4e
push ecx
mov edx, ebx
and dl, 0x20
movsx eax, dl
neg eax
sbb eax, eax
and eax, 0xffffffd8
add eax, 0x48
push eax
mov ecx, ebx
and cl, 0x10
movsx edx, cl
neg edx
sbb edx, edx
mov esi, dword [esi + 0x2c]
and edx, 0xffffffcd
mov eax, ebx
and al, 8
movsx ecx, al
add edx, 0x53
neg ecx
sbb ecx, ecx
push edx
mov edx, ebx
and dl, 4
and ecx, 0xffffffd2
add ecx, 0x4e
movsx eax, dl
neg eax
sbb eax, eax
push ecx
and eax, 0xffffffdf
add eax, 0x41
mov ecx, ebx
push eax
and cl, 2
movsx edx, cl
neg edx
sbb edx, edx
mov eax, ebx
and al, 1
and edx, 0xffffffdd
movsx ecx, al
add edx, 0x43
neg ecx
sbb ecx, ecx
push edx
and ecx, 0xffffffcd
add ecx, 0x53
push ecx
lea edx, [esp + 0xa0]
push str._c_c_c_c_c_c_c_c_c_c_c_c
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0x38
test bl, 7
je 0x471238
cmp dword [edi + 0x1054], 0
jg 0x471238
test ebx, 0xff8
jne 0x47125e
mov eax, dword [str.MUTEKI]
mov cx, word [0x4a2fc0]
mov dl, byte [0x4a2fc2]
mov dword [esp + 0x70], eax
mov word [esp + 0x74], cx
mov byte [esp + 0x76], dl
mov eax, 1
jmp 0x471262
mov eax, dword [esp + 0x14]
fld1
cmp ebx, 0xfff
jne 0x471274
test eax, eax
je 0x471305
mov eax, dword [esp + 0x18]
mov edx, dword [0x52b40c]
mov ebx, dword [edx + 0x80a8]
push 0xd4
push 0x100
push 0x100
push 0
push 1
sub esp, 0x10
fst dword [esp + 0xc]
add eax, 0xfffffffe
mov dword [esp + 0x38], eax
fstp dword [esp + 8]
fild dword [esp + 0x38]
lea ecx, [ebp - 0x1c]
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x94]
fstp dword [esp + 4]
fild dword [esp + 0x38]
fstp dword [esp]
call fcn.0040f830
mov eax, dword [0x52b3ac]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add esp, 0x24
add eax, dword [ecx + 0x18]
je 0x4712ef
cmp dword [eax + 0x1c], 1
jne 0x4712ef
mov eax, dword [eax + 0x24]
jmp 0x4712f1
xor eax, eax
mov ecx, dword [eax + 4]
push 0x7f
push 0x7f
push 0
push ecx
call sub.SDL.dll_SDL_MapRGB
add esp, 0x10
jmp 0x471329
xor edx, edx
fstp st(0)
cmp dword [edi + 0xe68], edx
je 0x47131a
push 0xc0
push 0x40
jmp 0x471321
push 0xff
push 0
call fcn.00411170
add esp, 8
mov ecx, dword [0x52b40c]
fld dword [edi + 0x13a8]
fmul dword [esp + 0x17c]
xor edx, edx
cmp dword [ecx + 0x12054], 2
fstp dword [esp + 0x14]
sete dl
fild dword [esp + 0x18]
fstp dword [esp + 0x24]
fild dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
fstp dword [esp + 0x24]
fld dword [esp + 0x18]
push edx
push eax
sub esp, 0x10
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x3c]
fstp dword [esp]
push esi
call fcn.0044eae0
mov eax, dword [0x52b3ac]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add esp, 0x20
add eax, dword [ecx + 0x18]
je 0x4713ab
cmp dword [eax + 0x1c], 1
jne 0x4713ab
mov eax, dword [eax + 0x24]
jmp 0x4713ad
xor eax, eax
mov ecx, dword [eax + 4]
push 0
push 0
push 0xff
push ecx
call sub.SDL.dll_SDL_MapRGB
mov ecx, dword [0x52b40c]
add esp, 0x10
xor edx, edx
cmp dword [ecx + 0x12054], 2
mov ebx, edi
fld dword [ebx + 0x13a8]
sete dl
fmul dword [esp + 0x17c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x34]
sub esp, 0x10
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x3c]
fstp dword [esp]
push eax
call fcn.0044eae0
mov esi, dword [esp + 0x38]
add esp, 0x20
mov edi, ebp
call fcn.004355f0
lea edi, [ebp - 1]
call fcn.004355f0
lea edi, [ebp + 1]
call fcn.004355f0
dec esi
mov edi, ebp
call fcn.004355f0
mov esi, dword [esp + 0x18]
inc esi
mov dword [esp + 0x1c], esi
call fcn.004355f0
cmp dword [ebx + 0x1e8], 1
jne 0x471498
cmp dword [ebx + 0xe58], 3
jne 0x47146a
mov eax, dword [ebx + 0x8c]
mov ecx, dword [ebx + 0x90]
jmp 0x471476
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x244]
add edx, eax
add eax, dword [ebx + 0x24c]
mov dword [esp + 0x28], edx
mov edx, dword [ebx + 0x240]
add edx, ecx
add ecx, dword [ebx + 0x248]
jmp 0x4714db
cmp dword [ebx + 0xe58], 3
jne 0x4714af
mov ecx, dword [ebx + 0x8c]
mov eax, dword [ebx + 0x90]
jmp 0x4714bb
mov ecx, dword [ebx + 0x84]
mov eax, dword [ebx + 0x88]
mov edx, dword [ebx + 0x240]
add edx, eax
add eax, dword [ebx + 0x248]
mov dword [esp + 0x28], edx
mov edx, dword [ebx + 0x244]
add edx, ecx
add ecx, dword [ebx + 0x24c]
mov esi, dword [ebx]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
fmul dword [esi + 0xa4]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x17c]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.00499690
fild dword [esp + 0x20]
mov dword [esp + 0x2c], eax
fmul dword [esi + 0xa4]
fstp dword [esp + 0x14]
fmul dword [esp + 0x14]
call fcn.00499690
mov ecx, dword [0x52b3ac]
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
mov dword [esp + 0x20], edx
je 0x471550
cmp dword [eax + 0x1c], 1
jne 0x471550
mov eax, dword [eax + 0x24]
jmp 0x471552
xor eax, eax
push 0
lea edi, [edx + ebp]
mov edx, dword [eax + 4]
push 0x7f
push 0x40
mov esi, ebp
sub esi, dword [esp + 0x38]
push edx
mov dword [esp + 0x24], edi
call sub.SDL.dll_SDL_MapRGB
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, eax
mov eax, edi
mov edx, esi
call fcn.004362b0
mov edx, dword [0x52b3ac]
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add esp, 0x14
add eax, dword [ecx + 0x18]
je 0x4715a3
cmp dword [eax + 0x1c], 1
jne 0x4715a3
mov eax, dword [eax + 0x24]
jmp 0x4715a5
xor eax, eax
mov eax, dword [eax + 4]
push 0
push 0x7f
push 0x40
push eax
call sub.SDL.dll_SDL_MapRGB
mov edi, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [esp + 0x2c]
dec edi
push esi
mov edx, edi
call fcn.004363d0
mov ecx, dword [0x52b3ac]
mov ecx, dword [ecx]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add esp, 0x14
add eax, dword [ecx + 0x18]
je 0x4715ec
cmp dword [eax + 0x1c], 1
jne 0x4715ec
mov eax, dword [eax + 0x24]
jmp 0x4715ee
xor eax, eax
mov edx, dword [eax + 4]
push 0
push 0x7f
push 0x40
push edx
call sub.SDL.dll_SDL_MapRGB
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, eax
mov eax, dword [esp + 0x30]
mov edx, edi
call fcn.004363d0
mov edx, dword [esp + 0x40]
add esp, 0x14
cmp dword [esp + 0x28], edx
je 0x471665
mov eax, dword [0x52b3ac]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
je 0x47163d
cmp dword [eax + 0x1c], 1
jne 0x47163d
mov eax, dword [eax + 0x24]
jmp 0x47163f
xor eax, eax
mov ecx, dword [eax + 4]
push 0
push 0x40
push 0x7f
push ecx
call sub.SDL.dll_SDL_MapRGB
mov edx, ebp
sub edx, dword [esp + 0x38]
mov ecx, eax
mov eax, dword [esp + 0x2c]
push edx
mov edx, edi
call fcn.004363d0
add esp, 0x14
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x20]
je 0x4716b9
mov ecx, dword [0x52b3ac]
mov ecx, dword [ecx]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
je 0x471691
cmp dword [eax + 0x1c], 1
jne 0x471691
mov eax, dword [eax + 0x24]
jmp 0x471693
xor eax, eax
mov edx, dword [eax + 4]
push 0
push 0x40
push 0x7f
push edx
call sub.SDL.dll_SDL_MapRGB
mov ecx, dword [esp + 0x34]
add ecx, ebp
push ecx
mov ecx, eax
mov eax, dword [esp + 0x30]
mov edx, edi
call fcn.004363d0
add esp, 0x14
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x28], edx
jle 0x47170e
mov eax, dword [0x52b3ac]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
je 0x4716e4
cmp dword [eax + 0x1c], 1
jne 0x4716e4
mov eax, dword [eax + 0x24]
jmp 0x4716e6
xor eax, eax
mov ecx, dword [eax + 4]
push 0
push 0x40
push 0x7f
push ecx
call sub.SDL.dll_SDL_MapRGB
mov edx, dword [esp + 0x28]
push edx
mov edx, ebp
sub edx, dword [esp + 0x3c]
mov ecx, eax
mov eax, edx
mov edx, esi
call fcn.004362b0
add esp, 0x14
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], eax
jle 0x471766
mov ecx, dword [0x52b3ac]
mov ecx, dword [ecx]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
je 0x47173a
cmp dword [eax + 0x1c], 1
jne 0x47173a
mov eax, dword [eax + 0x24]
jmp 0x47173c
xor eax, eax
mov edx, dword [eax + 4]
push 0
push 0x40
push 0x7f
push edx
call sub.SDL.dll_SDL_MapRGB
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
add edx, ebp
push ecx
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x28]
call fcn.004362b0
add esp, 0x14
mov eax, dword [ebx + 4]
push eax
lea ecx, [ebx + 0x20]
push ecx
lea edx, [esp + 0x78]
push str._s___i
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0x10
cmp dword [ebx + 0x11b0], 0
je 0x4717ab
lea eax, [esp + 0x70]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x471790
mov cx, word [0x4a2fcc]
mov dl, byte [0x4a2fce]
mov word [eax], cx
mov byte [eax + 2], dl
mov eax, dword [esp + 0x18]
mov ecx, dword [0x52b40c]
mov ebx, dword [ecx + 0x80a8]
push 0x100
push 0x100
add ebp, 0xffffffec
mov dword [esp + 0x1c], ebp
fild dword [esp + 0x1c]
push 0x100
push 0
push 1
fstp dword [esp + 0x28]
sub esp, 0x10
fld1
add eax, 6
fst dword [esp + 0xc]
mov dword [esp + 0x40], eax
fstp dword [esp + 8]
lea eax, [esp + 0x94]
fild dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.0040f830
mov edx, dword [esp + 0x19c]
mov eax, dword [edx + 0x26c]
add esp, 0x24
cmp dword [eax + 8], 0
jle 0x4719a6
mov ecx, dword [str.Target]
mov edx, dword [0x4a2fd4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
cmp dword [eax + 8], 0
je 0x471952
mov ecx, dword [eax + 0x24]
mov ebx, dword [eax + 4]
imul ebx, ecx
add ebx, dword [eax + 0x18]
mov dword [eax + 0x20], ecx
je 0x471952
lea esp, [esp]
mov eax, dword [ebx]
test eax, eax
je 0x4718b6
cmp dword [eax + 0x1b0], 0
je 0x4718b6
mov eax, dword [eax + 4]
push eax
lea ecx, [esp + 0x34]
push 0x49da1c
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
lea eax, [esp + 0x3c]
add esp, 0xc
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x471890
lea edi, [esp + 0x70]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4718a0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebx + 4]
push edx
lea eax, [esp + 0x34]
push 0x49f818
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
lea eax, [esp + 0x3c]
add esp, 0xc
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4718d3
lea edi, [esp + 0x70]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4718e3
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x178]
mov edx, dword [ecx + 0x26c]
mov eax, dword [edx + 0x20]
cmp eax, dword [edx + 0x28]
jge 0x471952
mov ecx, eax
shl ecx, 4
add ecx, dword [edx + 0x1c]
add ecx, 0x10
inc eax
cmp dword [ecx], 0
je 0x471916
mov ebx, dword [edx + 4]
imul ebx, eax
add ebx, dword [edx + 0x18]
mov dword [edx + 0x20], eax
je 0x471952
lea eax, [esp + 0x70]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x471932
mov dx, word [0x4a11bc]
mov cl, byte [0x4a11be]
mov word [eax], dx
mov byte [eax + 2], cl
jmp 0x471860
fld1
mov edx, dword [esp + 0x18]
mov eax, dword [0x52b40c]
mov ebx, dword [eax + 0x80a8]
push 0x100
push 0xc0
push 0x100
push 0
push 1
sub esp, 0x10
fst dword [esp + 0xc]
add edx, 0xc
fstp dword [esp + 8]
mov dword [esp + 0x40], edx
fild dword [esp + 0x40]
lea eax, [esp + 0x94]
fstp dword [esp + 4]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.0040f830
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x164
ret