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

Disassembly:
sub esp, 0xb10
push ebx
push ebp
push esi
push edi
push 0x1c0
lea eax, [esp + 0x74]
mov ebp, ecx
push 0
push eax
mov dword [esp + 0x78], ebp
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x230]
push 0x8f0
push 0
push eax
call sub.msvcrt.dll_memset
mov ebx, dword [0x10059df0]
add esp, 0xc
mov ecx, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], esi
lea eax, [ebx + 0x11a0]
mov dword [esp + 0x28], 0x10059da0
push 1
mov dword [esp + 0x28], eax
mov al, byte [ebx + 0x1176]
push ecx
mov ecx, dword [ecx + 8]
mov byte [esp + 0x27], al
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov word [esp + 0x3c], si
mov dword [esp + 0x40], 0x10059da0
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov word [esp + 0x4c], si
call fcn.10039cd0
mov edi, eax
test edi, edi
je 0x1003ff23
jmp 0x1003fcc0
mov eax, dword [esp + 0xb24]
cmp dword [edi + 0x1c], eax
jne 0x1003ff10
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x1003ff10
cmp word [ecx + 8], 1
jne 0x1003ff10
cmp byte [ecx + 0xa], 0
jne 0x1003ff10
cmp byte [ecx + 0x23], 0
jne 0x1003ff10
mov al, byte [ecx + 0x24]
mov byte [esp + 0x17], al
test al, al
je 0x1003fd12
cmp byte [ebx + 0x1175], 0
je 0x1003ff10
mov edx, dword [ecx + 0x1c]
lea eax, [edx - 1]
cmp eax, 0x23a
ja 0x1003ff10
mov ebx, dword [edx*4 + 0x1005b8e8]
test ebx, ebx
je 0x1003ff0c
mov ebp, dword [ebx]
cmp ebp, 0x81
mov dword [esp + edx*4 + 0x230], edi
setge byte [esp + 0x16]
cmp byte [esp + 0x1f], 0
jne 0x1003fded
mov edx, dword [ebx + 0xc]
cmp edx, 0x1c
jge 0x1003fded
cmp ebp, 0x81
jl 0x1003fd6f
cmp byte [ebx + 0x12], 0
je 0x1003fded
mov al, 0x1e
lea esi, [esp + 0x70]
cmp al, byte [ecx + 0x20]
push ecx
mov ecx, dword [ebx + 0x14]
sbb eax, eax
shl edx, 4
and eax, 8
add esi, edx
mov edx, dword [esp + 0x28]
add esi, eax
mov al, byte [ebx + 0x10]
mov byte [esp + 0x22], al
call fcn.1000ceb0
mov cl, byte [esi + 6]
mov dl, al
mov al, byte [esp + 0x1b]
add esp, 4
mov ah, byte [esp + 0x1e]
mov ch, byte [esp + 0x16]
cmp al, cl
jne 0x1003fdc3
mov al, byte [esi + 7]
cmp ah, al
mov al, byte [esp + 0x17]
je 0x1003fdc0
seta cl
jmp 0x1003fdc6
cmp ch, byte [esi + 5]
setb cl
cmp dword [esi], 0
je 0x1003fddf
cmp byte [esi + 4], 0
je 0x1003fdd7
test dl, dl
je 0x1003fded
jmp 0x1003fddb
test dl, dl
jne 0x1003fddf
test cl, cl
je 0x1003fded
mov dword [esi], ebx
mov byte [esi + 5], ch
mov byte [esi + 6], al
mov byte [esi + 4], dl
mov byte [esi + 7], ah
cmp dword [esp + 0x2c], 0
jne 0x1003ff0c
cmp ebp, 0x81
jl 0x1003ff0c
cmp dword [edi + 0x28], 0
je 0x1003ff0c
push 0x10056730
lea edx, [edi + 0x38]
mov dword [esp + 0x4c], 0x10059da0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov word [esp + 0x58], 0
call fcn.10008970
mov eax, dword [esp + 0x2c]
add esp, 4
mov ebx, dword [sym.imp.msvcrt.dll_free]
cmp eax, 0x10059da0
je 0x1003fe58
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x48]
lea edx, [edi + 0x38]
mov ebp, dword [esp + 0x4c]
lea ecx, [esp + 0x58]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x54]
push 0x10056734
mov dword [esp + 0x30], ebp
mov byte [esp + 0x38], al
mov dword [esp + 0x4c], 0x10059da0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0x10059da0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov word [esp + 0x68], 0
call fcn.10008970
mov eax, dword [esp + 0x3c]
add esp, 4
cmp eax, 0x10059da0
je 0x1003fed4
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x64]
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x44], al
mov dword [esp + 0x58], 0x10059da0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov ebx, dword [esp + 0x18]
mov ecx, edi
call fcn.1001f5c0
mov edi, eax
test edi, edi
jne 0x1003fcc0
xor esi, esi
cmp byte [esp + 0x1f], 0
je 0x1004014d
mov edx, 5
mov dword [esp + 0x18], edx
jmp 0x1003ff40
mov ebp, dword [esp + edx*4 + 0x230]
test ebp, ebp
je 0x10040137
cmp byte [ebp + 0x24], 0
je 0x10040137
lea eax, [edx - 1]
cmp eax, 0x23a
ja 0x10040137
mov ebx, dword [edx*4 + 0x1005b8e8]
mov dword [esp + 0x68], ebx
test ebx, ebx
je 0x10040137
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x1c
jl 0x1003ff98
mov eax, dword [0x10059df0]
mov eax, dword [eax + 0x116c]
shr eax, 0x1f
test al, al
je 0x10040137
mov esi, dword [ebp + 0x78]
test esi, esi
je 0x1003ffaa
cmp word [esi + 8], 1
jne 0x1003ffaa
mov eax, esi
jmp 0x1003ffac
xor eax, eax
xor edi, edi
cmp edx, 0x81
jl 0x10040011
cmp ecx, 0x1c
jge 0x10040011
cmp dword [eax + 0x2c], edi
jne 0x10040011
mov ecx, ebx
mov bl, byte [ebx + 8]
mov ecx, dword [ecx + 4]
lea eax, [ecx - 1]
cmp eax, 0x23a
ja 0x1003fffd
mov ecx, dword [ecx*4 + 0x1005b8e8]
test ecx, ecx
je 0x1003fffd
mov eax, dword [ecx]
mov edx, dword [esp + eax*4 + 0x230]
test edx, edx
je 0x1003ffc5
mov al, byte [ecx + 8]
cmp al, bl
je 0x1003fff5
test edi, edi
jne 0x1003ffc5
mov edi, edx
cmp al, bl
jne 0x1003ffc5
jmp 0x10040005
test edi, edi
je 0x1004012f
mov edx, edi
mov ecx, ebp
call fcn.100403e0
mov esi, dword [ebp + 0x78]
test esi, esi
je 0x10040087
cmp word [esi + 8], 1
jne 0x10040087
cmp byte [esi + 0x25], 0
jne 0x1004004a
cmp dword [esi + 0x1c], 0x81
jl 0x10040087
cmp dword [ebp + 0x28], 0
jne 0x10040087
lea ebx, [ebp + 0x38]
mov edx, 0x10056730
mov ecx, ebx
call fcn.10008790
test eax, eax
je 0x10040087
mov byte [esi + 0x25], 1
jmp 0x1004004d
lea ebx, [ebp + 0x38]
cmp dword [esp + 0x2c], 0
je 0x10040087
lea eax, [esp + 0x28]
mov byte [esi + 0x25], 0
push eax
mov edx, 0x10056730
mov ecx, ebx
call fcn.10008aa0
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x10040087
lea eax, [esp + 0x38]
mov edx, 0x10056734
push eax
mov ecx, ebx
call fcn.10008aa0
add esp, 4
test edi, edi
je 0x10040104
mov esi, dword [edi + 0x78]
test esi, esi
je 0x10040104
cmp word [esi + 8], 1
jne 0x10040104
cmp byte [esi + 0x25], 0
jne 0x100400c7
cmp dword [esi + 0x1c], 0x81
jl 0x10040104
cmp dword [edi + 0x28], 0
jne 0x10040104
add edi, 0x38
mov edx, 0x10056730
mov ecx, edi
call fcn.10008790
test eax, eax
je 0x10040104
mov byte [esi + 0x25], 1
jmp 0x100400ca
add edi, 0x38
cmp dword [esp + 0x2c], 0
je 0x10040104
lea eax, [esp + 0x28]
mov byte [esi + 0x25], 0
push eax
mov edx, 0x10056730
mov ecx, edi
call fcn.10008aa0
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x10040104
lea eax, [esp + 0x38]
mov edx, 0x10056734
push eax
mov ecx, edi
call fcn.10008aa0
add esp, 4
mov edx, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx + 0x14]
call fcn.1000ceb0
mov esi, dword [esp + 0x24]
add esp, 4
mov edx, dword [esp + 0x18]
test al, al
je 0x10040137
inc esi
mov byte [ebp + 0x24], 0
mov dword [esp + 0x20], esi
jmp 0x10040137
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x23c
jb 0x1003ff40
jmp 0x10040317
lea edx, [esp + 0x85]
mov dword [esp + 0x24], 0x36
mov dword [esp + 0x18], edx
mov ecx, dword [edx - 5]
test ecx, ecx
je 0x10040305
mov eax, dword [ecx]
mov ebp, dword [esp + eax*4 + 0x230]
cmp byte [ebp + 0x24], 0
je 0x10040305
mov esi, dword [ebp + 0x78]
test esi, esi
je 0x10040190
cmp word [esi + 8], 1
jne 0x10040190
mov eax, esi
jmp 0x10040192
xor eax, eax
xor edi, edi
cmp byte [edx], 0
je 0x100401ed
cmp dword [eax + 0x2c], edi
jne 0x100401ed
mov bl, byte [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [ecx - 1]
cmp eax, 0x23a
ja 0x100401d9
mov ecx, dword [ecx*4 + 0x1005b8e8]
test ecx, ecx
je 0x100401d9
mov eax, dword [ecx]
mov edx, dword [esp + eax*4 + 0x230]
test edx, edx
je 0x100401a1
mov al, byte [ecx + 8]
cmp al, bl
je 0x100401d1
test edi, edi
jne 0x100401a1
mov edi, edx
cmp al, bl
jne 0x100401a1
jmp 0x100401e1
test edi, edi
je 0x100402fd
mov edx, edi
mov ecx, ebp
call fcn.100403e0
mov esi, dword [ebp + 0x78]
test esi, esi
je 0x10040263
cmp word [esi + 8], 1
jne 0x10040263
cmp byte [esi + 0x25], 0
jne 0x10040226
cmp dword [esi + 0x1c], 0x81
jl 0x10040263
cmp dword [ebp + 0x28], 0
jne 0x10040263
lea ebx, [ebp + 0x38]
mov edx, 0x10056730
mov ecx, ebx
call fcn.10008790
test eax, eax
je 0x10040263
mov byte [esi + 0x25], 1
jmp 0x10040229
lea ebx, [ebp + 0x38]
cmp dword [esp + 0x2c], 0
je 0x10040263
lea eax, [esp + 0x28]
mov byte [esi + 0x25], 0
push eax
mov edx, 0x10056730
mov ecx, ebx
call fcn.10008aa0
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x10040263
lea eax, [esp + 0x38]
mov edx, 0x10056734
push eax
mov ecx, ebx
call fcn.10008aa0
add esp, 4
test edi, edi
je 0x100402e4
mov esi, dword [edi + 0x78]
test esi, esi
je 0x100402e4
cmp word [esi + 8], 1
jne 0x100402e4
cmp byte [esi + 0x25], 0
jne 0x100402a7
cmp dword [esi + 0x1c], 0x81
jl 0x100402e4
cmp dword [edi + 0x28], 0
jne 0x100402e4
add edi, 0x38
mov edx, 0x10056730
mov ecx, edi
call fcn.10008790
test eax, eax
je 0x100402e4
mov byte [esi + 0x25], 1
jmp 0x100402aa
add edi, 0x38
cmp dword [esp + 0x2c], 0
je 0x100402e4
lea eax, [esp + 0x28]
mov byte [esi + 0x25], 0
push eax
mov edx, 0x10056730
mov ecx, edi
call fcn.10008aa0
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x100402e4
lea eax, [esp + 0x38]
mov edx, 0x10056734
push eax
mov ecx, edi
call fcn.10008aa0
add esp, 4
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
cmp byte [edx - 1], 0
je 0x10040305
inc esi
mov byte [ebp + 0x24], 0
mov dword [esp + 0x20], esi
jmp 0x10040305
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
add edx, 8
sub dword [esp + 0x24], 1
mov dword [esp + 0x18], edx
jne 0x10040160
test esi, esi
je 0x10040339
cmp dword [esp + 0x2c], 0
je 0x10040339
mov ecx, dword [esp + 0x6c]
push 0
push dword [esp + 0xb28]
mov ecx, dword [ecx + 8]
push 0
call fcn.1001f000
mov eax, dword [esp + 0x38]
mov edi, dword [sym.imp.msvcrt.dll_free]
cmp eax, 0x10059da0
je 0x10040350
push eax
call edi
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, 0x10059da0
je 0x10040361
push eax
call edi
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xb10
ret 4