Function at 0x8377dcf1
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x150
push esi
push edi
xor eax, eax
mov word [ebp - 0x1c], ax
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor esi, esi
mov dword [ebp - 0x28], esi
xor eax, eax
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], esi
stosd dword es:[edi], eax
call dword [0x870f47c4]
cmp al, 2
jae 0x8377dd38
call dword [0x870f47ec]
mov byte [ebp - 1], al
mov dword [ebp - 8], 1
push ebx
push esi
call dword [0x870f4184]
mov ecx, dword [0x8710f940]
shl eax, 5
mov edi, dword [eax + ecx]
push 0x100
lea eax, [ebp - 0x128]
push esi
push eax
call fcn.837853bf
push 0x158
push esi
push edi
call fcn.837853bf
mov esi, dword [ebp + 0x10]
mov ax, word [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov word [ebp - 0x1c], ax
movzx eax, word [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x128]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xe4]
mov edx, dword [eax + 8]
mov dword [ebp - 0x134], edx
movzx eax, word [eax + 6]
mov dword [ebp - 0x138], eax
movzx eax, word [esi + 2]
shl eax, 3
mov dword [ebp + eax - 0x128], 0xc
lea edx, [ebp - 0x138]
mov dword [ebp + eax - 0x124], edx
mov eax, dword [ecx + 0xe8]
lea edx, [eax + 0x34]
mov dword [ebp - 0x12c], edx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x130], eax
movzx eax, word [esi + 4]
shl eax, 3
mov dword [ebp + eax - 0x128], 0x10
and dword [ebp + 0xc], 0
lea edx, [ebp - 0x130]
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 6]
mov edx, dword [ebp + 0x20]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp + eax*8 - 0x128], ebx
mov dword [ebp + eax*8 - 0x124], edx
movzx eax, word [esi + 0xe]
mov edx, dword [ebp + 0x30]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp + eax*8 - 0x128], ebx
mov dword [ebp + eax*8 - 0x124], edx
movzx eax, word [esi + 0xc]
mov dl, byte [ebp + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x128], 1
mov byte [ebp + eax - 0x124], dl
movzx eax, word [esi + 0x20]
mov edx, dword [ebp + 0x48]
add esp, 0x18
push 3
shl eax, 3
pop ebx
mov dword [ebp + eax - 0x128], ebx
test edx, edx
je 0x8377de6a
add edx, 0x58
jmp 0x8377de6d
lea edx, [ecx + 0x58]
test edx, edx
je 0x8377deac
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x8377de7d
add edx, 0x58
jmp 0x8377de80
lea edx, [ecx + 0x58]
test byte [edx + 0x20], 1
je 0x8377de8d
mov dword [ebp + 0xc], 2
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x8377de99
add edx, 0x58
jmp 0x8377de9c
lea edx, [ecx + 0x58]
test dword [edx + 0x20], 0x800
je 0x8377deac
or dword [ebp + 0xc], 0x10000
cmp byte [ebp + 0x3c], 0
je 0x8377deb6
or dword [ebp + 0xc], 1
mov edx, dword [ebp + 0xc]
or edx, 4
test byte [ecx + 0x10], 0x10
je 0x8377dec5
or edx, 0x10
push 2
mov dword [ebp + eax - 0x124], edx
pop edx
cmp word [ebp + 0x14], dx
jne 0x8377dedb
cmp dword [ebp + 0x18], 1
je 0x8377def0
cmp word [ebp + 0x14], 0x17
jne 0x8377df94
cmp dword [ebp + 0x18], 0x3a
jne 0x8377df94
movzx eax, word [esi + 0xa]
shl eax, 3
mov dword [ebp + eax - 0x128], edx
mov edx, dword [ebp + 0x38]
movzx dx, byte [edx + 4]
mov word [ebp + eax - 0x124], dx
movzx eax, word [esi + 0x10]
mov edx, dword [ebp + 0x38]
movzx dx, byte [edx + 5]
shl eax, 3
mov dword [ebp + eax - 0x128], 2
mov word [ebp + eax - 0x124], dx
movzx eax, word [esi + 0x44]
mov edx, dword [ebp + 0x48]
movzx dx, byte [edx + 0x16a]
shl eax, 3
cmp word [ebp + 0x14], 2
mov dword [ebp + eax - 0x128], 2
mov word [ebp + eax - 0x124], dx
mov eax, dword [ebp + 0x38]
mov dl, byte [eax + 4]
jne 0x8377df7a
cmp dl, 8
je 0x8377df84
test dl, dl
je 0x8377df84
cmp dl, 0xd
je 0x8377df84
cmp dl, 0xe
je 0x8377df84
cmp dl, 0x11
jmp 0x8377df82
cmp dl, 0x80
je 0x8377df84
cmp dl, 0x81
jne 0x8377dfec
or dword [edi], 0x8000000
mov eax, dword [eax]
mov dword [edi + 0xb8], eax
jmp 0x8377dfec
movzx eax, word [esi + 0xa]
shl eax, 3
mov dword [ebp + eax - 0x128], edx
mov dword [ebp + 0x3c], eax
mov ax, word [ebp + 0x24]
mov dh, al
mov dl, ah
mov eax, dword [ebp + 0x3c]
mov word [ebp + eax - 0x124], dx
movzx eax, word [esi + 0x10]
shl eax, 3
mov dword [ebp + eax - 0x128], 2
mov dword [ebp + 0x3c], eax
mov ax, word [ebp + 0x34]
mov dh, al
mov dl, ah
mov eax, dword [ebp + 0x3c]
mov word [ebp + eax - 0x124], dx
movzx eax, word [esi + 0x44]
and dword [ebp + eax*8 - 0x128], 0
movzx eax, word [esi + 8]
mov dl, byte [ebp + 0x28]
shl eax, 3
mov dword [ebp + eax - 0x128], 1
mov byte [ebp + eax - 0x124], dl
movzx eax, word [esi + 0x18]
mov edx, dword [ebp + 0x2c]
shl eax, 3
mov dword [ebp + eax - 0x128], 4
add edx, 8
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x26]
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx + 4]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x1a]
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + 0x3c], edx
mov edx, dword [edx + 0xc]
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x1c]
mov edx, dword [ebp + 0x3c]
shl eax, 3
cmp dword [ecx + 8], 6
mov dword [ebp + eax - 0x128], ebx
mov edx, dword [edx + 0x10]
mov dword [ebp + eax - 0x124], edx
jne 0x8377e08f
test byte [ecx + 0x10], 0x10
jne 0x8377e08f
mov dword [ebp + 0x3c], ecx
jmp 0x8377e095
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x3c], eax
mov edx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x3c]
mov eax, dword [eax + 0xd4]
neg edx
sbb edx, edx
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x64]
not edx
and edx, dword [ebp + 0x58]
dec eax
neg eax
sbb eax, eax
not eax
and eax, dword [ebp + 0x58]
je 0x8377e1ae
movzx ecx, word [esi + 0x28]
mov edx, dword [ebp + 0x5c]
shl ecx, 3
mov dword [ebp + ecx - 0x128], ebx
mov dword [ebp + ecx - 0x124], edx
movzx ecx, word [esi + 0x2a]
shl ecx, 3
mov dword [ebp + ecx - 0x128], 4
lea edx, [eax + 8]
mov dword [ebp + ecx - 0x124], edx
movzx ecx, word [esi + 0x2c]
mov edx, dword [eax + 0x18]
shl ecx, 3
mov dword [ebp + ecx - 0x128], ebx
mov edx, dword [edx + 0xc]
mov dword [ebp + ecx - 0x124], edx
movzx ecx, word [esi + 0x2e]
mov edx, dword [eax + 0x18]
shl ecx, 3
mov dword [ebp + ecx - 0x128], ebx
mov edx, dword [edx + 0x10]
mov dword [ebp + ecx - 0x124], edx
movzx ecx, word [esi + 0x30]
mov edx, dword [eax + 4]
shl ecx, 3
mov dword [ebp + ecx - 0x128], ebx
mov dword [ebp + ecx - 0x124], edx
movzx edx, word [esi + 0x34]
push dword [ebp + 0x6c]
xor ecx, ecx
mov dword [ebp + edx*8 - 0x128], ecx
movzx edx, word [esi + 0x36]
mov dword [ebp + edx*8 - 0x128], ecx
movzx edx, word [esi + 0x38]
mov dword [ebp + edx*8 - 0x128], ecx
movzx edx, word [esi + 0x3a]
mov dword [ebp + edx*8 - 0x128], ecx
movzx edx, word [esi + 0x32]
mov dword [ebp + edx*8 - 0x128], ecx
movzx ecx, word [esi + 0x3c]
mov edx, dword [ebp + 0x28]
shl ecx, 3
push 0
mov dword [ebp + ecx - 0x128], ebx
mov dword [ebp + ecx - 0x124], edx
movzx ecx, word [esi + 0x3e]
push 0
push dword [ebp + 0x14]
mov dword [ebp + ecx*8 - 0x128], ebx
push eax
jmp 0x8377e2a0
xor eax, eax
cmp edx, eax
je 0x8377e2d0
movzx ecx, word [esi + 0x2a]
mov dword [ebp + ecx*8 - 0x128], eax
movzx ecx, word [esi + 0x2c]
mov dword [ebp + ecx*8 - 0x128], eax
movzx ecx, word [esi + 0x2e]
mov dword [ebp + ecx*8 - 0x128], eax
movzx ecx, word [esi + 0x30]
mov dword [ebp + ecx*8 - 0x128], eax
movzx ecx, word [esi + 0x28]
mov dword [ebp + ecx*8 - 0x128], eax
movzx eax, word [esi + 0x34]
shl eax, 3
mov dword [ebp + eax - 0x128], 4
lea ecx, [edx + 8]
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 0x36]
mov ecx, dword [edx + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov ecx, dword [ecx + 0xc]
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 0x38]
mov ecx, dword [edx + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov ecx, dword [ecx + 0x10]
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 0x3a]
mov ecx, dword [edx + 4]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 0x32]
mov ecx, dword [ebp + 0x5c]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 0x3c]
mov ecx, dword [ebp + 0x28]
push 0
push dword [ebp + 0x68]
shl eax, 3
push dword [ebp + 0x1c]
mov dword [ebp + eax - 0x128], ebx
push dword [ebp + 0x14]
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 0x3e]
mov dword [ebp + eax*8 - 0x128], ebx
push edx
call fcn.8377a586
movzx ecx, word [esi + 0x3e]
mov dword [ebp + ecx*8 - 0x124], eax
movzx eax, word [esi + 0x40]
mov ecx, dword [ebp + 0x60]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], ecx
mov ecx, dword [ebp + 8]
jmp 0x8377e37a
movzx edx, word [esi + 0x2a]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x2c]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x2e]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x30]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x28]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x34]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x36]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x38]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x3a]
mov dword [ebp + edx*8 - 0x128], eax
movzx edx, word [esi + 0x32]
mov dword [ebp + edx*8 - 0x128], eax
movzx eax, word [esi + 0x3c]
mov edx, dword [ebp + 0x28]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x3e]
and dword [ebp + eax*8 - 0x128], 0
movzx eax, word [esi + 0x40]
mov edx, dword [ebp + 0x60]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], edx
mov edx, dword [ebp + 0x58]
movzx eax, word [esi + 0x46]
test edx, edx
je 0x8377e3a2
mov edx, dword [edx + 0x18]
shl eax, 3
add edx, 0x20
mov dword [ebp + eax - 0x128], 4
mov dword [ebp + eax - 0x124], edx
jmp 0x8377e3aa
and dword [ebp + eax*8 - 0x128], 0
mov eax, dword [ebp + 0x3c]
cmp dword [eax + 0xa8], 0
je 0x8377e441
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.8374c6a1
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x8377e403
lea ecx, [eax + 0x34]
mov dword [ebp - 0x13c], ecx
mov eax, dword [eax + 0x20]
add eax, 0x34
mov dword [ebp - 0x140], eax
movzx eax, word [esi + 0x12]
shl eax, 3
lea ecx, [ebp - 0x140]
mov dword [ebp + eax - 0x128], 0x10
mov dword [ebp + eax - 0x124], ecx
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x8377e43e
lea ecx, [eax + 0x34]
mov dword [ebp - 0x14c], ecx
mov eax, dword [eax + 0x20]
add eax, 0x34
mov dword [ebp - 0x150], eax
movzx eax, word [esi + 0x14]
shl eax, 3
lea ecx, [ebp - 0x150]
mov dword [ebp + eax - 0x128], 0x10
mov dword [ebp + eax - 0x124], ecx
mov ecx, dword [ebp + 8]
test dword [ecx + 0x10], 0x2000
je 0x8377e465
movzx eax, word [esi + 0x22]
mov edx, dword [ecx + 0xf4]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x24]
mov edx, dword [ebp + 0x3c]
mov edx, dword [edx + 0xbc]
shl eax, 3
cmp dword [ecx + 0x1b4], 1
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], edx
jne 0x8377e493
or dword [edi + 4], 0x80000
or dword [edi], 0xa0
and dword [edi + 0xc], 0
mov esi, dword [edi]
lea eax, [ebp - 0x28]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0xe4]
mov eax, dword [eax + 0x10]
cdq
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], edx
mov eax, esi
or eax, 0x800
mov dword [edi], eax
mov edx, dword [ecx + 0x194]
or eax, 0x404
mov dword [edi], eax
mov eax, dword [ebp + 0x54]
mov dword [edi + 0x50], edx
mov edx, dword [ebp + 0x50]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], edx
mov eax, dword [ecx + 0xe4]
mov edx, dword [eax + 8]
mov dword [ebp - 0x144], edx
movzx eax, word [eax + 6]
mov dword [ebp - 0x148], eax
or dword [edi], 0x18
mov esi, dword [edi]
lea eax, [ebp - 0x148]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0xe8]
mov eax, dword [eax + 0x1c]
cdq
mov dword [edi + 0x38], eax
mov eax, dword [ebp + 0x40]
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 0x44]
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 0x64]
or esi, 0x40002
mov dword [edi + 0x3c], edx
mov dword [edi + 0x7c], eax
mov eax, dword [ebp + 0x48]
xor edx, edx
mov dword [edi], esi
mov esi, dword [ebp + 0x70]
cmp eax, edx
je 0x8377e545
mov dword [ebp - 0x28], eax
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc8], eax
jmp 0x8377e576
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x28], ecx
mov dword [edi + 0xc8], eax
cmp esi, edx
je 0x8377e5f5
mov eax, dword [ecx + 0x110]
cmp eax, edx
je 0x8377e56e
push eax
call fcn.8377a5fb
mov ecx, dword [ebp + 8]
jmp 0x8377e570
xor eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
xor edx, edx
cmp esi, edx
je 0x8377e5f5
or dword [edi], 0x8000
mov ebx, dword [esi]
mov eax, dword [edi]
mov dword [edi + 0x68], ebx
mov ebx, dword [esi + 4]
mov dword [edi + 0x6c], ebx
mov ebx, dword [esi + 0x20]
or ebx, dword [esi + 0x24]
je 0x8377e5b0
or eax, 0x4000000
mov dword [edi], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0xb0], eax
mov eax, dword [esi + 0x24]
mov dword [edi + 0xb4], eax
cmp dword [esi + 8], edx
je 0x8377e5c1
or dword [edi], 0x20000
mov eax, dword [esi + 8]
mov dword [edi + 0x70], eax
cmp dword [esi + 0xc], edx
je 0x8377e5d8
or dword [edi], 0x10000
mov eax, dword [esi + 0xc]
mov dword [edi + 0x74], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x78], eax
cmp dword [esi + 0x14], edx
je 0x8377e5f5
or dword [edi], 0x800000
mov eax, dword [esi + 0x14]
mov dword [edi + 0x80], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x84], eax
cmp dword [ecx + 8], 6
pop ebx
jne 0x8377e60e
test byte [ecx + 0x10], 0x10
jne 0x8377e60e
mov eax, dword [ecx + 0x12c]
mov dword [edi + 0x150], eax
push dword [ebp + 0x74]
lea eax, [ebp - 0x1c]
push edx
push dword [ebp + 0x4c]
push dword [ebp + 0x6c]
push edi
push eax
call fcn.8377a798
cmp dword [ebp - 8], 0
mov esi, eax
je 0x8377e633
mov cl, byte [ebp - 1]
call dword [0x870f47c8]
test esi, esi
je 0x8377e642
push 0x870f6c6c
push esi
call fcn.8377aa64
pop edi
mov eax, esi
pop esi
leave
ret 0x70