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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
fld dword [esp + 0x1c]
fmul dword [0x42f608]
push 0x42cbf8
push eax
mov dword fs:[0], esp
sub esp, 0x34
fstp dword [esp + 0x58]
push ebx
push esi
mov esi, ecx
push edi
fld dword [esi + 0x65c]
fcomp dword [0x42f604]
fnstsw ax
test ah, 0x40
je 0x401365
fld dword [esi + 0x660]
fcomp dword [0x42f604]
fnstsw ax
test ah, 0x40
je 0x401365
mov eax, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub eax, edx
mov edx, dword [esp + 0x5c]
cmp edx, eax
jge 0x401a59
test edx, edx
jl 0x401a59
mov eax, dword [esi + 0x670]
mov ebx, dword [esi + 0x668]
mov ecx, dword [esp + 0x60]
sub eax, ebx
cmp ecx, eax
jge 0x401a59
test ecx, ecx
jl 0x401a59
mov eax, dword [esi + 0x66c]
mov edi, dword [esi + 0x664]
sub eax, edi
imul eax, ecx
mov ecx, dword [esp + 0x6c]
add eax, edx
xor edx, edx
cmp ecx, 0xc7
setne dl
add edx, 0xc6
mov dword [esi + 4], ecx
mov ecx, edx
mov edx, dword [esp + 0x54]
mov al, byte [eax + edx]
cmp al, 0xff
je 0x401292
and eax, 0xff
cmp eax, ecx
jne 0x401a59
fild dword [esp + 0x60]
push ecx
fstp dword [esp]
fild dword [esp + 0x60]
push ecx
lea ecx, [esp + 0x28]
fstp dword [esp]
call fcn.00401040
mov ecx, dword [eax + 8]
mov dword [esi + 0x65c], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x660], edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x20]
mov dword [esi + 0x658], eax
call fcn.00401060
mov ecx, dword [esp + 0x64]
mov dword [esi + 0x20c], 4
mov dword [esi + 0x650], ecx
xor ecx, ecx
lea edx, [esi + 0xc]
lea eax, [esi + 0x21c]
mov edi, dword [esi + 0x65c]
inc ecx
mov dword [eax - 4], edi
mov edi, dword [esi + 0x660]
mov dword [eax], edi
mov edi, dword [esi + 0x658]
mov dword [eax - 8], edi
mov dword [edx], 0
mov byte [esi + ecx + 0x60f], 0
add eax, 0x10
add edx, 4
cmp ecx, 4
jl 0x4012ee
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov dword [esi + 0x10c], edx
mov edx, dword [esp + 0x7c]
mov dword [esi + 0x110], eax
mov eax, dword [esp + 0x68]
mov dword [esi + 0x114], ecx
mov dword [esi + 0x118], edx
mov dword [esi + 8], eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
add esp, 0x40
ret 0x34
mov eax, dword [esi + 0x20c]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x74], edi
jle 0x401a1c
lea edx, [esi + 0x10c]
push ebp
mov dword [esp + 0x70], edx
lea ebp, [esi + 0x218]
fld dword [ebp]
fcomp dword [0x42f604]
fnstsw ax
test ah, 0x40
je 0x4013b7
fld dword [ebp + 4]
fcomp dword [0x42f604]
fnstsw ax
test ah, 0x40
je 0x4013b7
inc dword [esp + 0x68]
jmp 0x401975
lea ecx, [esp + 0x24]
call fcn.00401000
mov eax, dword [esp + 0x70]
push ecx
mov dword [esp + 0x50], 0
fld dword [eax]
fsin
fmul dword [esi + 0x650]
fstp dword [esp + 0x30]
fld dword [eax]
fcos
fmul dword [esi + 0x650]
fst dword [esp + 0x34]
fadd dword [ebp + 4]
fstp dword [esp]
fld dword [esp + 0x30]
fadd dword [ebp]
push ecx
lea ecx, [esp + 0x1c]
fstp dword [esp]
call fcn.00401040
fld dword [esp + 0x20]
call fcn.0040c89c
fld dword [esp + 0x1c]
mov dword [esp + 0x74], eax
call fcn.0040c89c
mov edx, dword [esi + 0x664]
mov ecx, dword [esi + 0x66c]
mov ebx, dword [esi + 0x66c]
mov edi, eax
mov eax, edx
sub ebx, edx
imul ebx, dword [esp + 0x74]
sub ecx, eax
add ebx, edi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x10], ebx
fild dword [esp + 0x7c]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x401932
fld dword [esp + 0x1c]
fcomp dword [0x42f604]
fnstsw ax
test ah, 1
jne 0x401932
mov edx, dword [esi + 0x670]
mov eax, dword [esi + 0x668]
sub edx, eax
mov dword [esp + 0x7c], edx
fild dword [esp + 0x7c]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x401932
fld dword [esp + 0x20]
fcomp dword [0x42f604]
fnstsw ax
test ah, 1
jne 0x401932
fld dword [ebp]
call fcn.0040c89c
cmp eax, edi
mov dword [esp + 0x7c], eax
jne 0x4014c2
fld dword [ebp + 4]
call fcn.0040c89c
cmp eax, dword [esp + 0x74]
je 0x401505
mov ecx, dword [esi + 4]
xor eax, eax
cmp ecx, 0xc7
mov ecx, dword [esp + 0x58]
setne al
mov bl, byte [ebx + ecx]
add eax, 0xc6
cmp bl, 0xff
je 0x401505
and ebx, 0xff
cmp ebx, eax
je 0x401505
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x78]
inc eax
mov dword [esp + 0x68], eax
mov byte [edx + esi + 0x610], 1
jmp 0x401947
cmp dword [esp + 0x7c], edi
jne 0x40151d
fld dword [ebp + 4]
call fcn.0040c89c
cmp eax, dword [esp + 0x74]
je 0x40191b
mov ebx, dword [esp + 0x70]
fld dword [esp + 0x84]
fadd dword [ebx]
fld st(0)
fsin
fadd st(0), st(0)
call fcn.0040c89c
fcos
mov dword [esp + 0x7c], eax
fadd st(0), st(0)
call fcn.0040c89c
fld dword [ebx]
fsub dword [esp + 0x84]
mov dword [esp + 0x80], eax
fld st(0)
fsin
fadd st(0), st(0)
call fcn.0040c89c
fcos
mov dword [esp + 0x6c], eax
fadd st(0), st(0)
call fcn.0040c89c
mov dword [esp + 0x60], eax
mov eax, dword [esi + 4]
cmp eax, 0xc7
jne 0x40173f
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x5c]
push eax
push edi
push ecx
call dword [sym.imp.GDI32.dll_GetPixel]
xor ebx, ebx
mov edi, eax
mov bl, ah
and edi, 0xff
shr eax, 0x10
and ebx, 0xff
and eax, 0xff
add edi, 0x3c
add ebx, 0x3c
add eax, 0x3c
cmp edi, 0xff
mov dword [esp + 0x74], eax
jle 0x4015c1
mov edi, 0xff
cmp ebx, 0xff
jle 0x4015ce
mov ebx, 0xff
cmp eax, 0xff
jle 0x4015e1
mov dword [esp + 0x74], 0xff
mov eax, dword [esp + 0x74]
xor edx, edx
fld dword [esp + 0x20]
mov dh, al
mov eax, edi
mov dl, bl
and eax, 0xff
shl edx, 8
or edx, eax
push edx
call fcn.0040c89c
fld dword [esp + 0x20]
push eax
call fcn.0040c89c
mov ecx, dword [esp + 0x64]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x74]
sub edi, 0x28
sub ebx, 0x28
sub eax, 0x28
test edi, edi
jge 0x401626
xor edi, edi
test ebx, ebx
jge 0x40162c
xor ebx, ebx
test eax, eax
jge 0x40163c
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x74]
fild dword [esp + 0x7c]
xor edx, edx
and edi, 0xff
mov dh, al
fadd dword [ebp]
mov dl, bl
shl edx, 8
or edx, edi
mov ebx, edx
call fcn.0040c89c
fild dword [esp + 0x80]
mov edi, eax
fadd dword [ebp + 4]
call fcn.0040c89c
test edi, edi
jl 0x4016c3
mov ecx, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub ecx, edx
cmp edi, ecx
jge 0x4016c3
test eax, eax
jl 0x4016c3
mov edx, dword [esi + 0x670]
mov ecx, dword [esi + 0x668]
sub edx, ecx
cmp eax, edx
jge 0x4016c3
mov ecx, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub ecx, edx
mov edx, dword [esp + 0x58]
imul ecx, eax
add ecx, edi
cmp byte [ecx + edx], 0xc7
je 0x4016c3
push ebx
push eax
mov eax, dword [esp + 0x64]
push edi
push eax
call dword [sym.imp.GDI32.dll_SetPixel]
fild dword [esp + 0x6c]
fadd dword [ebp]
call fcn.0040c89c
fild dword [esp + 0x60]
mov edi, eax
fadd dword [ebp + 4]
call fcn.0040c89c
test edi, edi
jl 0x401903
mov ecx, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub ecx, edx
cmp edi, ecx
jge 0x401903
test eax, eax
jl 0x401903
mov edx, dword [esi + 0x670]
mov ecx, dword [esi + 0x668]
sub edx, ecx
cmp eax, edx
jge 0x401903
mov ecx, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub ecx, edx
mov edx, dword [esp + 0x58]
imul ecx, eax
add ecx, edi
cmp byte [ecx + edx], 0xc7
je 0x401903
jmp 0x4018f5
cmp eax, 0xc6
jne 0x40191b
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
push ecx
push edi
push edx
call dword [sym.imp.GDI32.dll_GetPixel]
xor ebx, ebx
mov edi, eax
mov bl, ah
and edi, 0xff
shr eax, 0x10
and ebx, 0xff
and eax, 0xff
add edi, 0x3c
add ebx, 0x3c
add eax, 0x3c
cmp edi, 0xc8
mov dword [esp + 0x74], eax
jle 0x40178f
mov edi, 0xc8
cmp ebx, 0xc8
jle 0x40179c
mov ebx, 0xc8
cmp eax, 0xd2
jle 0x4017af
mov dword [esp + 0x74], 0xd2
mov eax, dword [esp + 0x74]
xor ecx, ecx
mov edx, edi
fld dword [esp + 0x20]
mov ch, al
and edx, 0xff
mov cl, bl
shl ecx, 8
or ecx, edx
push ecx
call fcn.0040c89c
fld dword [esp + 0x20]
push eax
call fcn.0040c89c
push eax
mov eax, dword [esp + 0x68]
push eax
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x74]
sub edi, 0x28
sub ebx, 0x28
sub eax, 0x28
test edi, edi
jge 0x4017f5
xor edi, edi
test ebx, ebx
jge 0x4017fb
xor ebx, ebx
test eax, eax
jge 0x40180b
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x74]
fild dword [esp + 0x7c]
xor ecx, ecx
and edi, 0xff
mov ch, al
fadd dword [ebp]
mov cl, bl
shl ecx, 8
or ecx, edi
mov ebx, ecx
call fcn.0040c89c
fild dword [esp + 0x80]
mov edi, eax
fadd dword [ebp + 4]
call fcn.0040c89c
test edi, edi
jl 0x401892
mov edx, dword [esi + 0x66c]
mov ecx, dword [esi + 0x664]
sub edx, ecx
cmp edi, edx
jge 0x401892
test eax, eax
jl 0x401892
mov ecx, dword [esi + 0x670]
mov edx, dword [esi + 0x668]
sub ecx, edx
cmp eax, ecx
jge 0x401892
mov edx, dword [esi + 0x66c]
mov ecx, dword [esi + 0x664]
sub edx, ecx
mov ecx, dword [esp + 0x58]
imul edx, eax
add edx, edi
cmp byte [edx + ecx], 0xc6
je 0x401892
mov edx, dword [esp + 0x5c]
push ebx
push eax
push edi
push edx
call dword [sym.imp.GDI32.dll_SetPixel]
fild dword [esp + 0x6c]
fadd dword [ebp]
call fcn.0040c89c
fild dword [esp + 0x60]
mov edi, eax
fadd dword [ebp + 4]
call fcn.0040c89c
test edi, edi
jl 0x401903
mov ecx, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub ecx, edx
cmp edi, ecx
jge 0x401903
test eax, eax
jl 0x401903
mov edx, dword [esi + 0x670]
mov ecx, dword [esi + 0x668]
sub edx, ecx
cmp eax, edx
jge 0x401903
mov ecx, dword [esi + 0x66c]
mov edx, dword [esi + 0x664]
sub ecx, edx
mov edx, dword [esp + 0x58]
imul ecx, eax
add ecx, edi
cmp byte [ecx + edx], 0xc6
je 0x401903
push ebx
push eax
mov eax, dword [esp + 0x64]
push edi
push eax
call dword [sym.imp.GDI32.dll_SetPixel]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
mov cl, byte [esi + 4]
mov byte [edx + eax], cl
mov eax, dword [esp + 0x70]
inc dword [eax - 0x100]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [ebp], ecx
mov dword [ebp + 4], edx
mov dword [ebp - 4], eax
jmp 0x401955
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x78]
inc eax
mov dword [esp + 0x68], eax
mov byte [ecx + esi + 0x610], 1
mov dword [ebp], 0
mov dword [ebp + 4], 0
lea ecx, [esp + 0x14]
call fcn.00401060
lea ecx, [esp + 0x24]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00401060
mov edx, dword [esp + 0x70]
xor edi, edi
mov eax, dword [edx - 0x100]
mov ecx, dword [esi + 8]
cmp eax, ecx
jl 0x4019fa
mov eax, dword [esi + 0x20c]
cmp eax, 0x3f
jge 0x4019f6
xor ecx, ecx
cmp eax, edi
jle 0x4019a3
mov bl, byte [ecx + esi + 0x610]
test bl, bl
jne 0x4019ac
inc ecx
cmp ecx, eax
jl 0x401993
lea ecx, [eax + 1]
mov dword [esi + 0x20c], ecx
mov ebx, dword [ebp]
lea eax, [ecx + 0x21]
shl eax, 4
add eax, esi
mov dword [eax + 8], ebx
mov ebx, dword [ebp + 4]
mov dword [eax + 0xc], ebx
mov ebx, dword [ebp - 4]
mov dword [eax + 4], ebx
mov dword [esi + ecx*4 + 0xc], edi
mov dword [edx - 0x100], edi
mov eax, dword [esp + 0x68]
fld dword [edx]
fadd dword [0x42f600]
inc eax
fstp dword [esi + ecx*4 + 0x10c]
fld dword [edx]
fsub dword [0x42f600]
fstp dword [edx]
mov byte [ecx + esi + 0x610], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esi + 0x20c]
inc eax
add edx, 4
add ebp, 0x10
cmp eax, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], edx
jl 0x40138e
pop ebp
mov ecx, dword [esp + 0x64]
mov eax, dword [esi + 0x20c]
cmp ecx, eax
jl 0x401a59
push edi
push edi
lea ecx, [esp + 0x38]
call fcn.00401040
mov edx, dword [eax + 8]
mov dword [esi + 0x65c], edx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x660], ecx
mov edx, dword [eax + 4]
lea ecx, [esp + 0x30]
mov dword [esi + 0x658], edx
call fcn.00401060
mov ecx, dword [esp + 0x40]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x40
ret 0x34