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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov cx, ax
mov ebx, eax
shr cx, 0xd
shr eax, 9
push edi
movzx ecx, cx
push 3
mov dword [ebp - 4], ecx
pop ecx
and eax, ecx
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov edi, dword [eax + 0x80]
movzx eax, word [edi + 0x44a]
shr eax, 6
and eax, ecx
mov dword [esi + 8], eax
lea eax, [edi + 0x42a]
mov dx, word [eax]
shr dx, 5
and dx, cx
shr ebx, 5
mov word [esi + 0xc], dx
mov ax, word [eax]
and ax, 0x1f
and ebx, 7
cmp dword [esi + 8], 2
mov word [esi + 0xe], ax
jne 0x304450
lea eax, [edi + 0x428]
mov dx, word [eax]
shr dx, 5
and dx, cx
mov word [esi + 0x10], dx
mov ax, word [eax]
and ax, 0x1f
mov word [esi + 0x12], ax
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x4c]
push eax
lea eax, [esi + 0x48]
push eax
movzx eax, word [esi + 0xe]
push eax
movzx eax, word [esi + 0xc]
push eax
mov ecx, esi
call fcn.002fd188
lea eax, [esi + 0x5c]
push eax
lea eax, [esi + 0x58]
push eax
lea eax, [esi + 0x54]
push eax
movzx eax, word [esi + 0x12]
push eax
movzx eax, word [esi + 0x10]
push eax
mov ecx, esi
call fcn.002fd188
cmp word [ebp - 4], 2
jne 0x304511
mov eax, dword [0x43008c]
cmp eax, 0x43008c
je 0x30448d
test dword [eax + 0x1c], 0x20000
je 0x30448d
cmp byte [eax + 0x19], 5
jb 0x30448d
push 0x20
push 0x2367f8
push 0xe
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.002c1e1b
add esp, 0x14
lea ecx, [esi + 0x24]
push ecx
lea eax, [esi + 0x14]
push eax
push 1
lea eax, [edi + 0x41a]
push eax
lea eax, [edi + 0x41c]
push eax
and bl, 0xfd
movzx eax, bl
push eax
mov ecx, esi
call fcn.002fd4e5
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
sub eax, edx
cmp dword [esi + 8], 2
je 0x3044cb
movzx ecx, word [edi + 0x410]
imul eax, ecx
movzx ecx, word [ebp - 8]
sub ecx, 0
je 0x3044f0
dec ecx
je 0x3044e5
dec ecx
jne 0x3044f0
lea ecx, [eax + 0x1f]
sar ecx, 3
and ecx, 0xfffffffc
jmp 0x3044fb
add eax, 0xf
sar eax, 3
and eax, 0xfffffffe
jmp 0x3044f6
add eax, 7
sar eax, 3
mov dword [ebp - 4], eax
mov ecx, eax
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
sub ebx, eax
imul ebx, ecx
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], edx
jmp 0x3045c8
mov eax, dword [0x43008c]
cmp eax, 0x43008c
je 0x304543
test dword [eax + 0x1c], 0x20000
je 0x304543
cmp byte [eax + 0x19], 5
jb 0x304543
push 0x20
push 0x2367f8
push 0xf
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.002c1e1b
add esp, 0x14
movzx eax, word [edi + 0x424]
lea ecx, [eax + 1]
mov dword [ebp - 4], ecx
movzx ecx, word [ebp - 8]
sub ecx, 0
je 0x304575
dec ecx
je 0x30456a
dec ecx
jne 0x304575
lea ebx, [eax + 0x1f]
sar ebx, 3
and ebx, 0xfffffffc
jmp 0x30457b
lea ebx, [eax + 0xf]
sar ebx, 3
and ebx, 0xfffffffe
jmp 0x30457b
lea ebx, [eax + 7]
sar ebx, 3
lea eax, [esi + 0x24]
push eax
mov ecx, esi
call fcn.002fd142
lea eax, [esi + 0x70]
push eax
lea eax, [esi + 0x6c]
push eax
lea eax, [esi + 0x74]
push eax
lea eax, [esi + 0x68]
push eax
lea eax, [esi + 0x64]
push eax
lea eax, [esi + 0x60]
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.002fd029
movzx ecx, word [edi + 0x41c]
mov eax, 0xfff
and ecx, eax
mov dword [esi + 0x38], ecx
movzx ecx, word [edi + 0x41a]
and ecx, eax
mov dword [esi + 0x34], ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov word [esi + 4], ax
mov word [edi + 0x520], ax
xor eax, eax
mov dword [edi + 0x518], ebx
mov word [esi + 6], cx
mov word [edi + 0x1008], ax
mov eax, dword [edi + 0x434]
mov dword [esi + 0x44], eax
xor edx, edx
mov eax, 0x8000
div ecx
mov edx, dword [edi + 0x518]
imul eax, ecx
lea ecx, [edi + 0x51c]
mov dword [ecx], eax
cmp eax, edx
jbe 0x304612
mov dword [ecx], edx
movzx eax, word [edi + 0x454]
mov dword [esi + 0x3c], eax
movzx eax, word [edi + 0x410]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x80]
mov eax, dword [eax + 0x588]
pop edi
mov dword [esi + 0x78], eax
pop esi
pop ebx
leave
ret 4