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

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x24]
push esi
mov esi, ecx
xor ecx, ecx
push edi
test ebp, ebp
je 0x10037797
mov eax, dword [esp + 0x30]
mov byte [eax], cl
mov eax, dword [esp + 0x34]
mov dword [eax], ecx
movzx ebx, word [esi + 0x9c]
cmp byte [esi + 0x89], cl
je 0x100377e9
mov ecx, dword [esi + 0xf8]
lea edx, [esp + 0x13]
push 1
call fcn.1000aba4
test eax, eax
jne 0x100378fa
mov eax, dword [esi + 0xf8]
xor edi, edi
push edi
push 1
push 0xffffffffffffffff
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x100378fa
xor ebx, ebx
cmp byte [esp + 0x13], 0x5d
sete bl
inc ebx
jmp 0x100377eb
xor edi, edi
cmp ebx, 1
jne 0x10037904
cmp byte [esi + 0xf1], 0
je 0x10037858
mov ecx, dword [esi + 0xf8]
lea edx, [esp + 0x13]
push ebx
call fcn.1000aba4
test eax, eax
jne 0x100378fa
mov eax, dword [esi + 0xf8]
push edi
push ebx
push 0xffffffffffffffff
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x100378fa
cmp byte [esp + 0x13], al
jne 0x10037847
push 2
pop ecx
mov byte [esi + 0xf0], bl
mov ebx, ecx
mov word [esi + 0x9c], cx
xor eax, eax
mov byte [esi + 0xf1], al
cmp ebx, 1
jne 0x10037904
lea ebx, [esi + 0x154]
mov ecx, dword [ebx]
test ecx, ecx
jne 0x100378a2
push 0x18
call fcn.100d5d14
mov edx, eax
xor eax, eax
mov dword [esp + 0x40], edx
pop ecx
test edx, edx
je 0x10037890
push 6
pop ecx
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx + 4], eax
mov dword [edx], 0x100ed274
mov dword [edx + 0xc], eax
mov dword [edx + 0x14], eax
jmp 0x10037892
mov edx, eax
push edx
mov ecx, ebx
mov dword [esi + 0x150], edx
call fcn.10005b6c
mov ecx, dword [ebx]
mov eax, dword [ecx]
xor ebx, ebx
push ebx
push ebx
push ebx
push dword [esp + 0x34]
push dword [esi + 0x144]
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x100378fa
mov eax, dword [esi + 0x150]
xor esi, esi
push 0x20
mov ecx, dword [eax + 0x10]
pop eax
sub eax, dword [ecx + 0x50]
mov edx, dword [ecx + 0x58]
sub edx, dword [ecx + 0x60]
shr eax, 3
sub edx, eax
sbb esi, ebx
add edx, dword [ecx + 0x78]
adc esi, ebx
add edx, dword [ecx + 0x68]
adc esi, dword [ecx + 0x6c]
add edx, 2
adc esi, ebx
cmp dword [esp + 0x38], edx
jne 0x100378f7
cmp ebx, esi
je 0x10037aa8
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x18
mov edi, dword [esp + 0x38]
cmp dword [esi + 0x884], edi
jae 0x1003791c
push edi
lea ecx, [esi + 0x880]
call fcn.10004503
mov edx, dword [esi + 0x880]
mov ecx, dword [esi + 0xf8]
push edi
call fcn.1000aba4
test eax, eax
jne 0x100378fa
mov eax, ebp
mov dword [esp + 0x14], ebp
test ebp, ebp
mov ebp, dword [esp + 0x3c]
jne 0x1003795b
mov ecx, dword [esi + 0x888]
push ebp
call fcn.1000a600
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1003795b
mov eax, 0x8007000e
jmp 0x100378fa
mov dword [esp + 0x38], ebp
mov ebp, dword [esi + 0x880]
mov dword [esp + 0x28], edi
cmp ebx, 3
jne 0x1003798c
lea ecx, [esp + 0x28]
push ecx
push ebp
lea edx, [esp + 0x40]
mov ecx, eax
call fcn.10038be1
test eax, eax
je 0x10037a77
jmp 0x100378fa
cmp ebx, 2
jne 0x10037a38
cmp byte [esi + 0xf0], 0
je 0x100379af
mov eax, dword [esi + 0x94]
mov byte [esp + 0x1c], 0x5d
mov dword [esp + 0x1d], eax
jmp 0x100379ef
cmp edi, 0xd
jb 0x100378f7
push 5
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.100d8b00
mov eax, dword [ebp + 5]
add esp, 0xc
cmp dword [ebp + 9], 0
jb 0x100379e1
ja 0x100378f7
cmp eax, dword [esp + 0x3c]
ja 0x100378f7
add ebp, 0xd
mov dword [esp + 0x38], eax
sub edi, 0xd
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push 0x100f7550
push eax
push 1
push 5
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x3c]
push eax
push ebp
lea edx, [esp + 0x54]
call fcn.100c33b0
test eax, eax
je 0x10037a25
mov ecx, eax
call fcn.10006a31
jmp 0x100378fa
cmp dword [esp + 0x18], 1
je 0x10037a77
cmp dword [esp + 0x18], 4
je 0x10037a77
jmp 0x100378f7
lea ecx, [esp + 0x3c]
mov edx, eax
push ecx
push 1
lea ecx, [esp + 0x30]
push ecx
push ebp
lea ecx, [esp + 0x48]
lea ebx, [esi + 0x158]
push ecx
mov ecx, ebx
call fcn.100d0f70
test eax, eax
jne 0x10037a19
cmp dword [esp + 0x3c], 3
jne 0x100378f7
mov ecx, ebx
call fcn.100d10b0
test eax, eax
je 0x100378f7
cmp edi, dword [esp + 0x28]
jne 0x100378f7
cmp dword [esp + 0x2c], 0
je 0x10037a9b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov byte [eax], 1
mov eax, dword [esp + 0x38]
mov dword [ecx], eax
jmp 0x10037aa8
mov ecx, dword [esi + 0x888]
mov eax, dword [esp + 0x38]
add dword [ecx + 0x10], eax
xor eax, eax
jmp 0x100378fa