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

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x70]
mov ecx, eax
mov edi, dword [ecx]
mov ebx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x74]
lea ebp, [esp + 0x58]
push ebp
mov ebp, dword [eax + 0xc]
sub ebp, dword [eax + 8]
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov eax, edx
add ebp, ecx
sub eax, edi
push ebp
add eax, ebx
push eax
push ecx
push edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], ebx
call fcn.30077090
mov eax, dword [esi + 0x34]
mov ebp, dword [esp + 0x80]
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x60]
push edx
push eax
push ebp
call fcn.30081080
add esp, 0x24
test al, al
je 0x3008367a
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x3008367a
mov eax, dword [esi + 0x34]
test eax, eax
je 0x3008367a
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x3008367a
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
sub ebx, ecx
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x5c]
push edx
push eax
mov dword [esp + 0x48], ebx
sub esi, edi
call fcn.300802a0
mov edi, eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x58]
push ecx
push ebp
mov dword [esp + 0x34], edi
call fcn.300802a0
mov ecx, dword [esp + 0x8c]
mov edx, eax
mov eax, dword [esp + 0x88]
add esp, 0x18
sar eax, 2
sar ecx, 2
test esi, esi
mov dword [esp + 0x18], edx
jle 0x3008367a
shl eax, 2
shl ecx, 2
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], esi
nop
test ebx, ebx
jle 0x30083653
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov esi, 0x100
sub esi, ecx
mov ecx, dword [esp + 0x80]
mov ebp, 0x100
sub ebp, eax
mov eax, 0x100
sub eax, ecx
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ebx
jmp 0x30083556
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + edi]
mov edx, dword [esp + 0x6c]
cmp dword [edx], 8
mov dword [esp + 0x74], ebx
jne 0x30083575
push ebx
call fcn.30080120
mov ebx, eax
add esp, 4
mov dword [esp + 0x74], ebx
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x34]
mov ecx, dword [edx]
cmp ecx, 8
mov eax, dword [edi]
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], ecx
jne 0x3008359a
push eax
call fcn.30080120
add esp, 4
mov dword [esp + 0x70], eax
movzx edi, byte [esp + 0x72]
movzx ecx, byte [esp + 0x76]
imul edi, esi
imul ecx, dword [esp + 0x78]
add edi, ecx
movzx ecx, ah
movzx edx, bh
imul ecx, ebp
imul edx, dword [esp + 0x7c]
add ecx, edx
mov edx, eax
and edx, 0xff
imul edx, dword [esp + 0x34]
mov esi, ebx
and esi, 0xff
imul esi, dword [esp + 0x80]
add edx, esi
movzx esi, dh
mov edx, dword [esp + 0x38]
shl edi, 8
and ecx, 0xff00
or esi, ecx
and edi, 0xff0000
or esi, edi
or esi, 0xff000000
cmp edx, 8
jne 0x3008362d
mov ebp, dword [esp + 0x84]
shr eax, 0x18
mov edx, 0x100
sub edx, ebp
imul eax, edx
shr ebx, 0x18
imul ebx, ebp
add eax, ebx
movzx eax, ah
push eax
push esi
call fcn.30080090
add esp, 8
jmp 0x3008362f
mov eax, esi
mov edi, dword [esp + 0x10]
mov dword [edi], eax
mov eax, dword [esp + 0x14]
add edi, 4
dec eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
jne 0x3008354a
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
add edx, esi
add edi, ecx
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
jne 0x30083500
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x1c