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

Disassembly:
push ebp
mov eax, 0x1948
lea ebp, [esp - 0x78]
call fcn.30118c20
push ebx
push esi
mov ebx, ecx
xor esi, esi
cmp dword [ebx + 0x74], esi
jne 0x30162c66
cmp byte [ebx + 8], 0
jne 0x30162c66
lea ecx, [ebx + 0x70]
call fcn.30138490
cmp eax, esi
mov dword [ebp + 0x74], eax
je 0x30162c66
push edi
lea ecx, [ebp - 0x78]
call fcn.3014ca31
push 3
push esi
push esi
push esi
push esi
push 0x800000
push esi
lea eax, [ebp - 0x78]
push eax
call fcn.3014caf2
push 0x11
xor eax, eax
pop ecx
mov dword [ebp + 0x10], esi
lea edi, [ebp + 0x14]
rep stosd dword es:[edi], eax
mov eax, 0x240
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.3015998b
movzx eax, byte [ebx + 0xc]
push eax
movzx eax, byte [ebx + 0xb]
push eax
push dword [ebx + 0x40]
lea eax, [ebp + 0x10]
push eax
call fcn.3015973d
lea esi, [ebx + 0x10]
lea edi, [ebp + 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
call fcn.30161c4d
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x78]
push eax
push ebx
lea ecx, [ebp - 0x18d0]
call fcn.301632cf
lea eax, [ebx + 0x20]
push eax
lea eax, [ebp - 0x18d0]
push eax
call fcn.30160216
mov ecx, dword [ebx + 0x18]
push dword [ebx + 0x40]
lea esi, [ebx + 0x10]
mov eax, dword [esi]
lea eax, [eax + ecx + 1]
mov ecx, dword [ebx + 0x1c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp + 0x68], eax
mov eax, dword [ebx + 0x14]
lea eax, [eax + ecx + 1]
cdq
sub eax, edx
sar eax, 1
push 0
mov dword [ebp + 0x6c], eax
call fcn.30159849
test eax, eax
je 0x3016290c
mov ecx, dword [ebx + 0x1c]
sub ecx, dword [ebx + 0x14]
mov edi, dword [ebx + 0x18]
sub edi, dword [esi]
mov esi, dword [ebp + 0x68]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
sub esi, eax
mov eax, edi
cdq
sub eax, edx
mov edx, eax
mov eax, dword [ebp + 0x6c]
sar edx, 1
sub eax, edx
mov dword [ebx + 0x30], esi
add esi, ecx
mov dword [ebx + 0x34], eax
add eax, edi
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], eax
jmp 0x30162913
lea edi, [ebx + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x74]
push 0x1fc
call fcn.301631d2
test eax, eax
mov ecx, dword [ebp + 0x74]
je 0x3016298b
push 0x1cb
call fcn.301631d2
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, 0xdf3e0
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
push 0x1fa
mov dword [ebp + 0x70], eax
call fcn.301631d2
test eax, eax
je 0x30162980
mov ecx, dword [ebp + 0x74]
push 0x1f9
call fcn.301631d2
test eax, eax
je 0x30162980
mov eax, dword [ebp + 0x70]
neg eax
push eax
push eax
lea eax, [ebx + 0x30]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
jmp 0x30162b03
mov eax, dword [ebp + 0x70]
push 0xfffffffffffffffe
cdq
pop ecx
idiv ecx
jmp 0x3016296f
push 0x57c
call fcn.301631d2
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, 0xdf3e0
je 0x301629ef
mov ecx, dword [ebp + 0x74]
push 0x54b
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
push 0x57a
mov dword [ebp + 0x70], eax
call fcn.301631d2
test eax, eax
je 0x301629e4
mov ecx, dword [ebp + 0x74]
push 0x579
call fcn.301631d2
test eax, eax
je 0x301629e4
mov eax, dword [ebp + 0x70]
jmp 0x301629ec
mov eax, dword [ebp + 0x70]
cdq
sub eax, edx
sar eax, 1
add dword [ebx + 0x30], eax
mov ecx, dword [ebp + 0x74]
push 0x5fc
call fcn.301631d2
test eax, eax
je 0x30162a4b
mov ecx, dword [ebp + 0x74]
push 0x5cb
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
push 0x5fa
mov dword [ebp + 0x70], eax
call fcn.301631d2
test eax, eax
je 0x30162a40
mov ecx, dword [ebp + 0x74]
push 0x5f9
call fcn.301631d2
test eax, eax
je 0x30162a40
mov eax, dword [ebp + 0x70]
jmp 0x30162a48
mov eax, dword [ebp + 0x70]
cdq
sub eax, edx
sar eax, 1
sub dword [ebx + 0x38], eax
mov ecx, dword [ebp + 0x74]
push 0x5bc
call fcn.301631d2
test eax, eax
je 0x30162aa7
mov ecx, dword [ebp + 0x74]
push 0x58b
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
push 0x5ba
mov dword [ebp + 0x70], eax
call fcn.301631d2
test eax, eax
je 0x30162a9c
mov ecx, dword [ebp + 0x74]
push 0x5b9
call fcn.301631d2
test eax, eax
je 0x30162a9c
mov eax, dword [ebp + 0x70]
jmp 0x30162aa4
mov eax, dword [ebp + 0x70]
cdq
sub eax, edx
sar eax, 1
add dword [ebx + 0x34], eax
mov ecx, dword [ebp + 0x74]
push 0x63c
call fcn.301631d2
test eax, eax
je 0x30162b03
mov ecx, dword [ebp + 0x74]
push 0x60b
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
push 0x63a
mov dword [ebp + 0x70], eax
call fcn.301631d2
test eax, eax
je 0x30162af8
mov ecx, dword [ebp + 0x74]
push 0x639
call fcn.301631d2
test eax, eax
je 0x30162af8
mov eax, dword [ebp + 0x70]
jmp 0x30162b00
mov eax, dword [ebp + 0x70]
cdq
sub eax, edx
sar eax, 1
sub dword [ebx + 0x3c], eax
mov ecx, dword [ebp + 0x74]
push 0x81
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
add dword [ebx + 0x30], eax
push 0x82
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
add dword [ebx + 0x34], eax
push 0x83
call fcn.301631d2
push edi
push 0x240
push eax
call esi
mov ecx, dword [ebp + 0x74]
sub dword [ebx + 0x38], eax
push 0x84
call fcn.301631d2
push edi
push 0x240
push eax
call esi
sub dword [ebx + 0x3c], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x78]
push eax
push ebx
lea ecx, [ebp - 0xca4]
call fcn.301632cf
lea eax, [ebp - 0xca4]
push eax
lea eax, [ebp + 0x58]
push eax
lea esi, [ebx + 0x30]
mov eax, esi
call fcn.30161c95
mov eax, dword [ebp + 0x58]
sub dword [esi], eax
mov eax, dword [ebp + 0x5c]
sub dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x60]
sub dword [ebx + 0x38], eax
mov eax, dword [ebp + 0x64]
sub dword [ebx + 0x3c], eax
cmp byte [ebx + 0xb], 0
jne 0x30162bbd
cmp byte [ebx + 0xc], 0
jne 0x30162bbd
cmp dword [ebx + 0x40], 0
je 0x30162c43
call fcn.30150174
mov edi, eax
mov eax, dword [ebx + 0x40]
test eax, eax
mov dword [ebp + 0x70], edi
je 0x30162beb
mov ecx, dword [edi]
lea edx, [ebp + 0x68]
push edx
push eax
mov dword [ebp + 0x74], ecx
call fcn.30153741
imul eax, eax, 0x5a0000
push eax
mov eax, dword [ebp + 0x74]
push edi
call dword [eax + 0x20]
cmp byte [ebx + 0xb], 0
je 0x30162bfd
mov eax, dword [edi]
lea ecx, [ebp + 0x68]
push ecx
push 1
push edi
call dword [eax + 0x1c]
cmp byte [ebx + 0xc], 0
je 0x30162c0f
mov eax, dword [edi]
lea ecx, [ebp + 0x68]
push ecx
push 2
push edi
call dword [eax + 0x1c]
mov eax, dword [edi]
push 2
push esi
push edi
call dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, dword [ebx + 0x38]
jle 0x30162c29
mov ecx, dword [esi]
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0x38], ecx
mov dword [esi], eax
mov eax, dword [ebx + 0x3c]
cmp eax, dword [ebx + 0x34]
jge 0x30162c3d
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x3c], eax
mov eax, dword [edi]
push edi
call dword [eax + 4]
lea ecx, [ebp - 0xca4]
mov byte [ebx + 8], 1
call fcn.30159b7f
lea ecx, [ebp - 0x18d0]
call fcn.30159b7f
lea ecx, [ebp - 0x78]
call fcn.301420db
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret