Function at 0x4306c4
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
push esi
push edi
push 0x42886c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0xc], eax
push 0x42887c
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x38], eax
push 0x428890
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x14], eax
push 0x4288a0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x48], eax
push 0x4288c0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x34], eax
push 0x4288d0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x40], eax
push 0x4288e0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x44], eax
push 0x4288f0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 4], eax
push 0x428900
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10], eax
push 0x428910
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x30], eax
push 0x428920
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x2c], eax
push 0x428934
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x3c], eax
push 0x428948
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x24], eax
push 0x428964
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x6c], eax
push 0x428978
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x20], eax
push 0x428988
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x68], eax
push 0x428998
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x28], eax
push 0x4289a8
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
push 0x4289bc
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1c], eax
push 0x4289cc
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x70], eax
push 0x4289dc
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x64], eax
push 0x4289ec
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x74], eax
push 0x4289fc
push 0xffffffffffffffff
push 0
push 0
call dword [ebp - 0x38]
add esp, 0x10
mov dword [ebp - 0x18], eax
movss xmm0, dword [0x42aaa0]
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [0x42aaa8]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [0x42aaa8]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [0x42aaa0]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [0x42aaa8]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [0x42aaa8]
movss dword [ebp - 0x4c], xmm0
cmp dword [ebp - 0x18], 0
je 0x43112f
push dword [ebp + 0x14]
push dword [ebp - 0x18]
call dword [ebp - 0x14]
pop ecx
pop ecx
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x431128
push dword [ebp - 0x78]
push dword [ebp - 0x18]
call dword [ebp - 0x48]
pop ecx
pop ecx
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x43111d
push dword [ebp - 0x7c]
push dword [ebp - 0x18]
call dword [ebp - 0x34]
pop ecx
pop ecx
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jle 0x431112
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x174]
cmp dword [eax + 4], 0
jg 0x430922
jl 0x430918
mov eax, dword [ebp - 0x174]
cmp dword [eax], 0
jae 0x430922
mov eax, dword [ebp + 0x18]
and dword [eax], 0
and dword [eax + 4], 0
mov eax, dword [ebp - 0x80]
dec eax
cdq
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x178]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x17c]
jl 0x43096c
jg 0x43095f
mov eax, dword [ebp - 0x178]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x180]
jbe 0x43096c
mov eax, dword [ebp - 0x80]
dec eax
cdq
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp + 0x18]
push dword [eax]
push dword [ebp - 0x7c]
push dword [ebp - 0x18]
call dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x431112
push dword [ebp - 0x84]
push dword [ebp - 0x18]
lea eax, [ebp - 0x170]
push eax
call dword [ebp - 0x44]
add esp, 0xc
mov esi, eax
lea edi, [ebp - 0x160]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x160]
lea edi, [ebp - 0xa0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cvttss2si eax, dword [ebp - 0x98]
mov dword [ebp - 0x88], eax
cvttss2si eax, dword [ebp - 0x94]
mov dword [ebp - 0x8c], eax
push 0
push 0
push dword [ebp - 0x8c]
push dword [ebp - 0x88]
push dword [ebp - 0x18]
call dword [ebp - 4]
pop ecx
push eax
push dword [ebp - 0x18]
call dword [ebp - 0x10]
add esp, 0x18
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x431104
push 0xff
push dword [ebp - 0x90]
push dword [ebp - 0x18]
call dword [ebp - 0x24]
add esp, 0xc
push dword [ebp - 0x90]
sub esp, 0x18
push 6
pop ecx
lea esi, [ebp - 0x60]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x18]
call dword [ebp - 0x6c]
add esp, 0x20
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
je 0x4310f6
push 0
sub esp, 0x18
push 6
pop ecx
lea esi, [ebp - 0x60]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0xa4]
push dword [ebp - 0x84]
push dword [ebp - 0x18]
call dword [ebp - 0x20]
add esp, 0x28
push dword [ebp - 0xa4]
push dword [ebp - 0x18]
call dword [ebp - 0x74]
pop ecx
pop ecx
push dword [ebp - 0xa4]
push dword [ebp - 0x18]
call dword [ebp - 0x64]
pop ecx
pop ecx
push dword [ebp - 0x90]
push dword [ebp - 0x18]
call dword [ebp - 0x3c]
pop ecx
pop ecx
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
je 0x4310f6
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp - 0x8c]
shl eax, 2
push eax
push 1
call dword [sym.imp.MSVCR100.dll_calloc]
pop ecx
pop ecx
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x4310f6
and dword [ebp - 0xe4], 0
jmp 0x430afa
mov eax, dword [ebp - 0xe4]
inc eax
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
cmp eax, dword [ebp - 0x8c]
jge 0x430bbe
and dword [ebp - 0xe8], 0
jmp 0x430b22
mov eax, dword [ebp - 0xe8]
inc eax
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x88]
jge 0x430bb9
mov eax, dword [ebp - 0x88]
imul eax, eax, 3
imul eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe8]
imul ecx, ecx, 3
add ecx, dword [ebp - 0xa8]
add ecx, eax
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0x88]
shl eax, 2
imul eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + ecx*4]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov cl, byte [ecx]
mov byte [eax], cl
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov cl, byte [ecx + 1]
mov byte [eax + 1], cl
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov cl, byte [ecx + 2]
mov byte [eax + 2], cl
jmp 0x430b15
jmp 0x430aed
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x88]
jle 0x430c57
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp - 0x8c]
shl eax, 2
push eax
push 1
call dword [sym.imp.MSVCR100.dll_calloc]
pop ecx
pop ecx
mov dword [ebp - 0xf8], eax
push dword [ebp - 0xf8]
push dword [ebp - 0x8c]
push dword [ebp - 0x88]
push dword [ebp - 0xf4]
call fcn.0042df28
push dword [ebp - 0xac]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x8c], eax
push 0x2c
push 0
lea eax, [ebp - 0xdc]
push eax
call dword [sym.imp.MSVCR100.dll_memset]
add esp, 0xc
mov dword [ebp - 0xdc], 0x28
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x8c]
neg eax
mov dword [ebp - 0xd4], eax
xor eax, eax
inc eax
mov word [ebp - 0xd0], ax
push 0x20
pop eax
mov word [ebp - 0xce], ax
and dword [ebp - 0xcc], 0
and dword [ebp - 0xb0], 0
push 0
push 0
lea eax, [ebp - 0xb0]
push eax
push 0
lea eax, [ebp - 0xdc]
push eax
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x4310e9
cmp dword [ebp + 8], 0
jne 0x430cef
mov eax, dword [0x45c594]
mov dword [ebp + 8], eax
movsd xmm0, qword [ebp + 0x1c]
movsd qword [ebp - 0x138], xmm0
movsd xmm0, qword [ebp + 0x24]
movsd qword [ebp - 0x110], xmm0
movsd xmm0, qword [ebp + 0x1c]
addsd xmm0, qword [ebp + 0x2c]
movsd qword [ebp - 0x130], xmm0
movsd xmm0, qword [ebp + 0x24]
addsd xmm0, qword [ebp + 0x34]
movsd qword [ebp - 0x108], xmm0
push 8
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movsd qword [ebp - 0x120], xmm0
push 0xa
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movsd qword [ebp - 0x128], xmm0
cmp dword [ebp + 0xc], 1
jne 0x430d71
cmp dword [ebp + 0x10], 0
je 0x430eed
movsd xmm0, qword [ebp - 0x120]
comisd xmm0, xmmword [ebp - 0x128]
jbe 0x430dc6
mov eax, dword [ebp + 8]
cmp eax, dword [0x45c594]
jne 0x430dc4
movsd xmm0, qword [0x45c5b0]
mulsd xmm0, qword [ebp - 0x120]
movsd xmm1, qword [ebp - 0x128]
comisd xmm1, xmm0
jbe 0x430dc4
movsd xmm0, qword [0x45c5b0]
mulsd xmm0, qword [ebp - 0x120]
movsd qword [ebp - 0x128], xmm0
jmp 0x430e19
movsd xmm0, qword [ebp - 0x128]
comisd xmm0, xmmword [ebp - 0x120]
jbe 0x430e19
mov eax, dword [ebp + 8]
cmp eax, dword [0x45c594]
jne 0x430e19
movsd xmm0, qword [0x45c5b0]
mulsd xmm0, qword [ebp - 0x128]
movsd xmm1, qword [ebp - 0x120]
comisd xmm1, xmm0
jbe 0x430e19
movsd xmm0, qword [0x45c5b0]
mulsd xmm0, qword [ebp - 0x128]
movsd qword [ebp - 0x120], xmm0
movsd xmm0, qword [0x42aab8]
mulsd xmm0, qword [ebp - 0x120]
movsd qword [ebp - 0x140], xmm0
movsd xmm0, qword [0x42aab8]
mulsd xmm0, qword [ebp - 0x128]
movsd qword [ebp - 0x148], xmm0
fld qword [ebp - 0x140]
fmul qword [ebp - 0x138]
call fcn.0045bf56
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], edx
fild qword [ebp - 0x188]
fstp qword [ebp - 0x138]
fld qword [ebp - 0x148]
fmul qword [ebp - 0x110]
call fcn.0045bf56
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], edx
fild qword [ebp - 0x190]
fstp qword [ebp - 0x110]
fld qword [ebp - 0x140]
fmul qword [ebp - 0x130]
call fcn.0045bf56
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], edx
fild qword [ebp - 0x198]
fstp qword [ebp - 0x130]
fld qword [ebp - 0x148]
fmul qword [ebp - 0x108]
call fcn.0045bf56
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], edx
fild qword [ebp - 0x1a0]
fstp qword [ebp - 0x108]
push 0
push ecx
push ecx
movsd xmm0, qword [ebp + 0x34]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [ebp + 0x2c]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [ebp + 0x24]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [ebp + 0x1c]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
push 0
push 0
push 0xffffff
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp + 8]
call fcn.0042df92
movsd xmm0, qword [ebp - 0x130]
subsd xmm0, qword [ebp - 0x138]
movsd qword [ebp + 0x2c], xmm0
movsd xmm0, qword [ebp - 0x108]
subsd xmm0, qword [ebp - 0x110]
movsd qword [ebp + 0x34], xmm0
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp - 0x8c]
shl eax, 2
push eax
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call dword [sym.imp.MSVCR100.dll_memcpy]
add esp, 0xc
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x114], eax
push dword [ebp - 0xe0]
push dword [ebp - 0x114]
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp + 0x3c]
or eax, dword [ebp + 0x40]
je 0x43108f
movd xmm0, dword [ebp - 0x88]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [ebp - 0x8c]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
movsd qword [ebp - 0x150], xmm0
movsd xmm0, qword [ebp + 0x2c]
divsd xmm0, qword [ebp + 0x34]
comisd xmm0, xmmword [ebp - 0x150]
jbe 0x431023
movsd xmm0, qword [ebp + 0x34]
mulsd xmm0, qword [ebp - 0x150]
movsd qword [ebp + 0x2c], xmm0
jmp 0x431035
movsd xmm0, qword [ebp + 0x2c]
divsd xmm0, qword [ebp - 0x150]
movsd qword [ebp + 0x34], xmm0
movsd xmm0, qword [ebp - 0x130]
subsd xmm0, qword [ebp - 0x138]
subsd xmm0, qword [ebp + 0x2c]
divsd xmm0, qword [0x42aab0]
addsd xmm0, qword [ebp - 0x138]
movsd qword [ebp - 0x138], xmm0
movsd xmm0, qword [ebp - 0x108]
subsd xmm0, qword [ebp - 0x110]
subsd xmm0, qword [ebp + 0x34]
divsd xmm0, qword [0x42aab0]
addsd xmm0, qword [ebp - 0x110]
movsd qword [ebp - 0x110], xmm0
push 0xcc0020
push dword [ebp - 0x8c]
push dword [ebp - 0x88]
push 0
push 0
push dword [ebp - 0x114]
cvttsd2si eax, qword [ebp + 0x34]
push eax
cvttsd2si eax, qword [ebp + 0x2c]
push eax
cvttsd2si eax, qword [ebp - 0x110]
push eax
cvttsd2si eax, qword [ebp - 0x138]
push eax
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_StretchBlt]
push dword [ebp - 0x114]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [ebp - 0xe0]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xac]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
push dword [ebp - 0x90]
push dword [ebp - 0x18]
call dword [ebp - 0x70]
pop ecx
pop ecx
push dword [ebp - 0x84]
push dword [ebp - 0x18]
call dword [ebp - 0x1c]
pop ecx
pop ecx
push dword [ebp - 0x7c]
push dword [ebp - 0x18]
call dword [ebp - 8]
pop ecx
pop ecx
push dword [ebp - 0x78]
push dword [ebp - 0x18]
call dword [ebp - 0x28]
pop ecx
pop ecx
push dword [ebp - 0x18]
call dword [ebp - 0x68]
pop ecx
pop edi
pop esi
leave
ret 0x3c