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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x140
push ebx
mov ebx, dword [ebp + 8]
xor eax, eax
push esi
push edi
mov word [ebp - 0x1c], ax
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor esi, esi
xor eax, eax
cmp dword [ebx + 8], 6
mov dword [ebp - 0x28], esi
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
mov dword [ebp - 0x10], esi
stosd dword es:[edi], eax
mov dword [ebp - 0xc], esi
jne 0x8372df2b
mov ecx, dword [ebx + 0x10]
test cl, 0x10
jne 0x8372df2b
mov eax, 0x1000000
and ecx, eax
cmp ecx, eax
mov dword [ebp - 8], ebx
jmp 0x8372df3d
mov ecx, dword [ebp + 0x44]
mov edx, dword [ecx + 0x10]
mov eax, 0x1000000
and edx, eax
cmp edx, eax
mov dword [ebp - 8], ecx
sete byte [ebp - 1]
call dword [0x870f47c4]
cmp al, 2
jae 0x8372df5b
call dword [0x870f47ec]
mov byte [ebp - 2], al
mov dword [ebp - 0x10], 1
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 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 [ebx + 0xe4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x12c], ecx
movzx eax, word [eax + 6]
mov dword [ebp - 0x130], eax
movzx eax, word [esi + 2]
shl eax, 3
add esp, 0x18
push 0xc
pop edx
mov dword [ebp + eax - 0x128], edx
lea ecx, [ebp - 0x130]
mov dword [ebp + eax - 0x124], ecx
mov eax, dword [ebx + 0xe8]
lea ecx, [eax + 0x34]
mov dword [ebp - 0x13c], ecx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x140], eax
movzx eax, word [esi + 4]
shl eax, 3
mov dword [ebp + eax - 0x128], 0x10
lea ecx, [ebp - 0x140]
mov dword [ebp + eax - 0x124], ecx
movzx eax, word [esi + 6]
mov ecx, dword [ebp + 0x20]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + eax*8 - 0x128], ebx
mov dword [ebp + eax*8 - 0x124], ecx
movzx eax, word [esi + 0xe]
mov ecx, dword [ebp + 0x30]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + eax*8 - 0x128], ebx
mov dword [ebp + eax*8 - 0x124], ecx
movzx eax, word [esi + 0xc]
mov cl, byte [ebp + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x128], 1
mov byte [ebp + eax - 0x124], cl
mov eax, dword [ebp - 8]
add eax, 0xac
cmp dword [eax], 0
je 0x8372e095
movzx ecx, word [esi + 0x42]
mov eax, dword [eax]
shl ecx, 3
mov dword [ebp + ecx - 0x128], edx
mov edx, dword [eax + 0x20]
mov dword [ebp + ecx - 0x124], edx
movzx eax, byte [eax + 2]
mov dword [ebp - 0xc], eax
movzx edx, word [esi + 0x20]
mov ecx, dword [ebp + 0x44]
and dword [ebp + 0xc], 0
push 3
shl edx, 3
pop ebx
mov dword [ebp + edx - 0x128], ebx
test ecx, ecx
je 0x8372e0b6
lea eax, [ecx + 0x58]
jmp 0x8372e0bc
mov eax, dword [ebp + 8]
add eax, 0x58
test eax, eax
je 0x8372e0f7
test ecx, ecx
je 0x8372e0c9
lea eax, [ecx + 0x58]
jmp 0x8372e0cf
mov eax, dword [ebp + 8]
add eax, 0x58
test byte [eax + 0x20], 1
push 2
pop eax
je 0x8372e0db
mov dword [ebp + 0xc], eax
test ecx, ecx
jne 0x8372e0e2
mov ecx, dword [ebp + 8]
add ecx, 0x58
test dword [ecx + 0x20], 0x800
je 0x8372e0fa
or dword [ebp + 0xc], 0x10000
jmp 0x8372e0fa
push 2
pop eax
cmp byte [ebp - 1], 0
je 0x8372e104
or dword [ebp + 0xc], 1
mov ecx, dword [ebp + 8]
or dword [ebp + 0xc], 4
test byte [ecx + 0x10], 0x10
je 0x8372e115
or dword [ebp + 0xc], 0x10
cmp dword [ebp - 0xc], 0
je 0x8372e122
or dword [ebp + 0xc], 0x4000
mov ecx, dword [ebp - 8]
test dword [ecx + 0x14], 0x2000
je 0x8372e135
or dword [ebp + 0xc], 0x100000
mov ecx, dword [ebp + 0xc]
mov dword [ebp + edx - 0x124], ecx
cmp word [ebp + 0x14], ax
jne 0x8372e14b
cmp dword [ebp + 0x18], 1
je 0x8372e160
cmp word [ebp + 0x14], 0x17
jne 0x8372e1fb
cmp dword [ebp + 0x18], 0x3a
jne 0x8372e1fb
movzx ecx, word [esi + 0xa]
mov edx, dword [ebp + 0x38]
movzx dx, byte [edx + 4]
shl ecx, 3
mov dword [ebp + ecx - 0x128], eax
mov word [ebp + ecx - 0x124], dx
movzx ecx, word [esi + 0x10]
mov edx, dword [ebp + 0x38]
movzx dx, byte [edx + 5]
shl ecx, 3
mov dword [ebp + ecx - 0x128], eax
mov word [ebp + ecx - 0x124], dx
movzx ecx, word [esi + 0x44]
mov edx, dword [ebp + 0x44]
movzx dx, byte [edx + 0x16a]
shl ecx, 3
cmp word [ebp + 0x14], ax
mov dword [ebp + ecx - 0x128], eax
mov eax, dword [ebp + 0x38]
mov word [ebp + ecx - 0x124], dx
mov cl, byte [eax + 4]
jne 0x8372e1e1
cmp cl, 8
je 0x8372e1eb
test cl, cl
je 0x8372e1eb
cmp cl, 0xd
je 0x8372e1eb
cmp cl, 0xe
je 0x8372e1eb
cmp cl, 0x11
jmp 0x8372e1e9
cmp cl, 0x80
je 0x8372e1eb
cmp cl, 0x81
jne 0x8372e249
or dword [edi], 0x8000000
mov eax, dword [eax]
mov dword [edi + 0xb8], eax
jmp 0x8372e249
movzx ecx, word [esi + 0xa]
shl ecx, 3
mov dword [ebp + ecx - 0x128], eax
mov dword [ebp + 0xc], ecx
mov cx, word [ebp + 0x24]
mov dh, cl
mov dl, ch
mov ecx, dword [ebp + 0xc]
mov word [ebp + ecx - 0x124], dx
movzx ecx, word [esi + 0x10]
shl ecx, 3
mov dword [ebp + ecx - 0x128], eax
mov ax, word [ebp + 0x34]
mov dh, al
mov dl, ah
movzx eax, word [esi + 0x44]
mov word [ebp + ecx - 0x124], dx
and dword [ebp + eax*8 - 0x128], 0
movzx eax, word [esi + 8]
mov cl, byte [ebp + 0x28]
shl eax, 3
mov dword [ebp + eax - 0x128], 1
mov byte [ebp + eax - 0x124], cl
movzx eax, word [esi + 0x18]
mov ecx, dword [ebp + 0x2c]
shl eax, 3
mov dword [ebp + eax - 0x128], 4
lea edx, [ecx + 8]
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x1a]
mov edx, dword [ecx + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov edx, dword [edx + 0xc]
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x1c]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 4]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov edx, dword [edx + 0x10]
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x26]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd4]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x64]
mov edx, eax
neg edx
sbb edx, edx
not edx
and edx, dword [ebp + 0x58]
dec eax
neg eax
sbb eax, eax
not eax
and eax, dword [ebp + 0x58]
je 0x8372e3ea
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 0x8372e4dc
movzx eax, word [esi + 0x2a]
xor ecx, ecx
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x2c]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x2e]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x30]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x28]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x34]
cmp edx, ecx
je 0x8372e508
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
xor ecx, ecx
jmp 0x8372e576
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x36]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x38]
mov edx, dword [ebp + 0x28]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x3a]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x32]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x3c]
shl eax, 3
mov dword [ebp + eax - 0x128], ebx
mov dword [ebp + eax - 0x124], edx
movzx eax, word [esi + 0x3e]
mov edx, dword [ebp + 0x60]
mov dword [ebp + eax*8 - 0x128], ecx
movzx eax, word [esi + 0x40]
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]
cmp edx, ecx
je 0x8372e59e
mov edx, dword [edx + 0x18]
shl eax, 3
add edx, 0x20
mov dword [ebp + eax - 0x128], 4
mov dword [ebp + eax - 0x124], edx
jmp 0x8372e5a5
mov dword [ebp + eax*8 - 0x128], ecx
mov esi, dword [ebp + 8]
cmp dword [esi + 0x1b4], 1
jne 0x8372e5b8
or dword [edi + 4], 0x80000
or dword [edi], 0xa0
mov dword [edi + 0xc], ecx
lea eax, [ebp - 0x28]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xe4]
mov eax, dword [eax + 0x10]
cdq
mov dword [edi + 0x40], eax
mov eax, dword [edi]
or eax, 0x800
mov dword [edi], eax
or eax, 0x404
mov dword [edi + 0x44], edx
mov edx, dword [esi + 0x194]
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 [esi + 0xe4]
mov edx, dword [eax + 8]
mov dword [ebp - 0x134], edx
movzx eax, word [eax + 6]
mov dword [ebp - 0x138], eax
or dword [edi], 0x18
lea eax, [ebp - 0x138]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0xe8]
mov eax, dword [eax + 0x1c]
cdq
mov dword [edi + 0x38], eax
mov eax, dword [ebp + 0x3c]
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 0x40]
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x3c], edx
mov edx, dword [ebp + 0x64]
mov dword [edi + 0x64], eax
mov eax, dword [edi]
mov dword [edi + 0x7c], edx
mov edx, dword [ebp + 0x74]
or eax, 0x44002
mov dword [edi], eax
cmp edx, ecx
je 0x8372e682
or eax, 0x20000000
lea esi, [edx + 0x10]
add edx, 0x110
mov dword [edi], eax
mov dword [edi + 0xc0], esi
cmp dword [edx], ecx
je 0x8372e682
or eax, 0x10000000
mov dword [edi], eax
mov eax, dword [edx]
mov dword [edi + 0xbc], eax
mov eax, dword [ebp + 0x44]
mov esi, dword [ebp + 0x70]
cmp eax, ecx
je 0x8372e691
mov dword [ebp - 0x28], eax
jmp 0x8372e6b9
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
cmp esi, ecx
je 0x8372e6b9
mov eax, dword [eax + 0x110]
cmp eax, ecx
je 0x8372e6af
push eax
call fcn.8377a5fb
xor ecx, ecx
jmp 0x8372e6b3
xor eax, eax
xor edx, edx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov byte [ebp - 0x24], 0
cmp esi, ecx
je 0x8372e73a
or dword [edi], 0x8000
mov edx, dword [esi]
mov eax, dword [edi]
mov dword [edi + 0x68], edx
mov edx, dword [esi + 4]
mov dword [edi + 0x6c], edx
mov edx, dword [esi + 0x20]
or edx, dword [esi + 0x24]
je 0x8372e6f5
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], ecx
je 0x8372e706
or dword [edi], 0x20000
mov eax, dword [esi + 8]
mov dword [edi + 0x70], eax
cmp dword [esi + 0xc], ecx
je 0x8372e71d
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], ecx
je 0x8372e73a
or dword [edi], 0x800000
mov eax, dword [esi + 0x14]
mov dword [edi + 0x80], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x84], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 6
jne 0x8372e755
test byte [eax + 0x10], 0x10
jne 0x8372e755
mov eax, dword [eax + 0x12c]
mov dword [edi + 0x150], eax
push dword [ebp + 0x78]
lea eax, [ebp - 0x1c]
push ecx
push dword [ebp + 0x48]
push dword [ebp + 0x6c]
push edi
push eax
call fcn.8377a798
mov esi, eax
test esi, esi
jne 0x8372e7bc
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 6
jne 0x8372e77e
test byte [eax + 0x10], 0x10
je 0x8372e7bc
mov eax, dword [ebp + 0x44]
mov cl, byte [eax + 0xf0]
cmp cl, 1
jne 0x8372e79c
cmp dword [edi + 0xdc], ebx
jne 0x8372e79c
push dword [edi + 0xe0]
jmp 0x8372e7af
test cl, 2
je 0x8372e7bc
cmp dword [edi + 0xe4], ebx
jne 0x8372e7bc
push dword [edi + 0xe8]
push 1
add eax, 0xf8
push eax
call fcn.8377590e
cmp dword [ebp - 0x10], 0
je 0x8372e7cb
mov cl, byte [ebp - 2]
call dword [0x870f47c8]
test esi, esi
je 0x8372e7da
push 0x870f6c90
push esi
call fcn.8377aa64
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x74