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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
xor ebx, ebx
and dword [ebp - 4], ebx
and dword [ebp - 8], ebx
cmp eax, dword [ebp + 0x24]
jne 0x3003c5cf
cmp dword [ebp + 0x18], 4
jne 0x3003c0d4
push dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
add ecx, 4
push ecx
push dword [edi + 0xc]
push dword [edi + 0x44]
push eax
call 0x3004c588
mov ebx, eax
test ebx, ebx
jns 0x3003c0d4
push dword [ebp + 8]
push 0x43f286
push ebx
call 0x3005b09a
add esp, 0xc
jmp 0x3003c5b2
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [edi + 0x4c]
push dword [edi + 0x48]
call 0x3005c1d8
mov ebx, eax
test ebx, ebx
jns 0x3003c100
push 0x43f262
push ebx
call 0x3005b09a
pop ecx
pop ecx
jmp 0x3003c5b2
cmp dword [ebp + 0x18], 4
push esi
je 0x3003c111
cmp dword [ebp + 0x18], 6
jne 0x3003c522
push dword [edi + 0x50]
mov esi, 0x402c4c
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
push dword [edi + 0x20]
mov esi, 0x402c28
push dword [edi + 0x1c]
push esi
push dword [ebp - 4]
call 0x3005c942
mov ebx, eax
test ebx, ebx
js 0x3003c562
push dword [edi + 0x28]
mov esi, 0x402c08
push dword [edi + 0x24]
push esi
push dword [ebp - 4]
call 0x3005c942
mov ebx, eax
test ebx, ebx
js 0x3003c562
push dword [edi + 0x18]
mov esi, 0x402be4
push dword [edi + 0x14]
push esi
push dword [ebp - 4]
call 0x3005c942
mov ebx, eax
test ebx, ebx
js 0x3003c562
push dword [edi + 0x30]
mov esi, 0x402bc4
push dword [edi + 0x2c]
push esi
push dword [ebp - 4]
call 0x3005c942
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
movzx edx, cx
push edx
mov edx, eax
shrd ecx, edx, 0x10
movzx ecx, cx
push ecx
movzx ecx, ax
push ecx
mov dword [ebp - 0xc], eax
shr eax, 0x10
push eax
push 0x43f242
mov esi, 0x402b70
push esi
push dword [ebp - 4]
shr edx, 0x10
call 0x3005c8fe
mov ebx, eax
add esp, 0x1c
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x40]
test eax, eax
je 0x3003c206
push eax
mov esi, 0x402ba0
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x10]
test eax, eax
je 0x3003c226
push eax
mov esi, 0x402b8c
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
push 0x43bc4a
push 0x43f23a
mov esi, 0x402b54
push esi
push dword [ebp - 4]
call 0x3005c8fe
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x3003c562
push dword [edi + 0x50]
mov esi, 0x402b28
push 0x43f230
push esi
push dword [ebp - 4]
call 0x3005c8fe
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x3003c562
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x10]
mov ebx, edi
call fcn.3003a2a2
test eax, eax
mov eax, dword [ebp - 8]
jns 0x3003c286
mov eax, dword [edi + 0x5c]
push eax
mov esi, 0x402b10
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x60]
test eax, eax
je 0x3003c2bf
push eax
mov esi, 0x402af0
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x64]
test eax, eax
je 0x3003c2df
push eax
mov esi, 0x402ac0
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x68]
test eax, eax
je 0x3003c2ff
push eax
mov esi, 0x402aac
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x3003c31f
push eax
mov esi, 0x402a90
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x70]
test eax, eax
je 0x3003c33f
push eax
mov esi, 0x402a74
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x74]
test eax, eax
je 0x3003c35f
push eax
mov esi, 0x402a58
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x78]
test eax, eax
je 0x3003c39a
push eax
mov esi, 0x402a34
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
push dword [edi + 0x78]
mov esi, 0x402a18
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x3003c3ba
push eax
mov esi, 0x402a04
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x80]
test eax, eax
je 0x3003c3dd
push eax
mov esi, 0x4029f4
push esi
push dword [ebp - 4]
call 0x3005c856
mov ebx, eax
test ebx, ebx
js 0x3003c562
mov eax, dword [edi + 0x84]
cmp eax, 1
jne 0x3003c4cd
mov esi, 0x4029e0
push 1
push esi
push dword [ebp - 4]
call 0x3005c134
mov ebx, eax
test ebx, ebx
js 0x3003c562
cmp dword [edi + 0x88], 0
je 0x3003c42d
push dword [edi + 0x8c]
mov esi, 0x402990
push esi
push dword [ebp - 4]
call 0x3005c134
mov ebx, eax
test ebx, ebx
js 0x3003c562
cmp dword [edi + 4], 0
jne 0x3003c44d
push 1
mov esi, 0x402970
push esi
push dword [ebp - 4]
call 0x3005c134
mov ebx, eax
test ebx, ebx
js 0x3003c562
push dword [edi + 0x50]
mov esi, 0x402944
push 0x43f200
push esi
push dword [ebp - 4]
call 0x3005c8fe
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x3003c562
cmp dword [edi + 0x84], 2
mov eax, 0x43f1f0
je 0x3003c483
mov eax, 0x43f1d8
push eax
push dword [edi + 0x50]
mov esi, 0x402924
push 0x43f1c4
push esi
push dword [ebp - 4]
call 0x3005c8fe
mov ebx, eax
add esp, 0x14
test ebx, ebx
js 0x3003c562
cmp dword [edi + 0x94], 0
je 0x3003c4ff
push dword [edi]
lea ebx, [edi + 0x90]
call fcn.3003b114
mov ebx, eax
test ebx, ebx
jns 0x3003c4ff
push 0x43f1a4
jmp 0x3003c5a9
cmp eax, 2
je 0x3003c406
push dword [edi + 0x50]
mov esi, 0x4029c8
push 0x43f188
push esi
push dword [ebp - 4]
call 0x3005c8fe
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x3003c562
mov esi, 0x4029a4
jmp 0x3003c3f1
cmp dword [edi + 0x98], 0
je 0x3003c522
push dword [ebp + 0x10]
mov eax, edi
call fcn.3003be7a
mov ebx, eax
test ebx, ebx
jns 0x3003c522
push 0x43f162
jmp 0x3003c5a9
cmp dword [ebp + 0x18], 3
je 0x3003c573
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x3003c573
ja 0x3003c54a
test ecx, ecx
je 0x3003c573
test eax, eax
jb 0x3003c54d
ja 0x3003c54a
cmp ecx, 0xffffffff
jbe 0x3003c54d
or ecx, 0xffffffff
push ecx
mov esi, 0x402ad4
push esi
push dword [ebp - 4]
call 0x3005c134
mov ebx, eax
test ebx, ebx
jns 0x3003c573
push esi
push 0x43e736
push ebx
call 0x3005b09a
add esp, 0xc
jmp 0x3003c5b1
cmp dword [ebp + 0x18], 4
je 0x3003c57f
cmp dword [ebp + 0x18], 6
jne 0x3003c592
push edi
call 0x30051b34
mov ebx, eax
test ebx, ebx
jns 0x3003c592
push 0x43f134
jmp 0x3003c5a9
push 0
push 1
push dword [ebp - 4]
call fcn.3003a308
mov ebx, eax
test ebx, ebx
jns 0x3003c5b1
push 0x43edde
push ebx
call 0x3005b09a
pop ecx
pop ecx
pop esi
cmp dword [ebp - 8], 0
je 0x3003c5c0
push dword [ebp - 8]
call 0x300586b8
cmp dword [ebp - 4], 0
je 0x3003c5cf
push dword [ebp - 4]
call dword [0x40108c]
pop edi
mov eax, ebx
pop ebx
leave
ret 0x20