Function at 0x10001640
Capabilities:
Access peb ldr_data
Get process heap flags
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x338
mov dword [ebp - 0x10], 0x1009a0ab
mov dword [ebp - 0x1b8], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x1c]
lea ecx, [ebp - 0x1b8]
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c4], eax
mov eax, dword fs:[0x18]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x1c8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x1bc]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x1c0]
add eax, 0xc
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x138]
je 0x10001714
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x130], eax
mov esi, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + 0x30]
call fcn.100015a0
cmp esi, eax
jne 0x1000170a
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x13c], eax
jmp 0x1000171e
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
jmp 0x100016cd
mov dword [ebp - 0x13c], 0
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x40]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x50]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x2a0], esi
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
add eax, dword [ecx + 0x3c]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x2a0]
add eax, dword [ecx + edx*8 + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x94]
add eax, dword [ecx + 0x20]
mov dword [ebp - 0x298], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x94]
add eax, dword [ecx + 0x1c]
mov dword [ebp - 0x294], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x94]
add eax, dword [ecx + 0x24]
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x94]
cmp eax, dword [ecx + 0x18]
jae 0x100018fd
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x298]
mov edx, dword [ebp - 0x6c]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x28c]
mov ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x2b0], ecx
push eax
std
invalid
inc edi
test dword [edi + edi*8], edi
invalid
inc dword [eax]
add byte [eax], al
add byte [ebx - 0x15b73], cl
invalid
call fcn.10001600
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x2ac]
jae 0x100018c0
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x98]
mov al, byte [eax + ecx]
mov byte [ebp - 0x3d], al
mov eax, dword [ebp - 0x2b0]
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x314], ecx
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0
mov eax, dword [ebp - 0x110]
cmp eax, dword [ebp - 0x318]
jae 0x1000189a
mov eax, dword [ebp - 0x314]
add eax, dword [ebp - 0x114]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x110]
add eax, 1
mov dword [ebp - 0x110], eax
jmp 0x10001869
mov eax, dword [ebp - 0x114]
movzx ecx, byte [ebp - 0x3d]
add eax, ecx
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
jmp 0x10001819
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0x2a4]
jne 0x100018ef
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x294]
mov edx, dword [ebp - 0x290]
mov esi, dword [ebp - 0x6c]
movzx edx, word [edx + esi*2]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x158], eax
jmp 0x10001907
mov eax, dword [ebp - 0x6c]
add eax, 1
mov dword [ebp - 0x6c], eax
jmp 0x100017b5
mov dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x24]
xor edx, edx
mov dword [esp], 0
mov dword [esp + 4], ecx
call eax
sub esp, 8
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x40]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x280], esi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
add eax, dword [ecx + 0x3c]
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x280]
add eax, dword [ecx + edx*8 + 0x78]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x90]
add eax, dword [ecx + 0x20]
mov dword [ebp - 0x278], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x90]
add eax, dword [ecx + 0x1c]
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x90]
add eax, dword [ecx + 0x24]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x68], 0
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x90]
cmp eax, dword [ecx + 0x18]
jae 0x10001b0a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x278]
mov edx, dword [ebp - 0x68]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x288]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0xc8], 0
mov ecx, dword [ebp - 0x160]
call fcn.10001600
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x9c], 0
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x2b4]
jae 0x10001acd
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x9c]
mov al, byte [eax + ecx]
mov byte [ebp - 0x3e], al
mov eax, dword [ebp - 0x2b8]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x30c], ecx
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x310]
jae 0x10001aa7
mov eax, dword [ebp - 0x30c]
add eax, dword [ebp - 0x10c]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
jmp 0x10001a76
mov eax, dword [ebp - 0x10c]
movzx ecx, byte [ebp - 0x3e]
add eax, ecx
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x9c]
add eax, 1
mov dword [ebp - 0x9c], eax
jmp 0x10001a26
mov eax, dword [ebp - 0xc8]
cmp eax, dword [ebp - 0x284]
jne 0x10001afc
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x68]
movzx edx, word [edx + esi*2]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x154], eax
jmp 0x10001b14
mov eax, dword [ebp - 0x68]
add eax, 1
mov dword [ebp - 0x68], eax
jmp 0x100019c2
mov dword [ebp - 0x154], 0
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x4c]
xor edx, edx
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x104
call eax
sub esp, 0xc
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x38]
sub ecx, 1
movzx eax, word [eax + ecx*2]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x60]
movzx ecx, cx
cmp eax, ecx
je 0x10001b8f
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x38]
mov word [eax + ecx*2], 0
mov eax, dword [ebp - 0x38]
add eax, 0xffffffff
mov dword [ebp - 0x38], eax
jmp 0x10001b5e
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x78]
movsx eax, byte [eax + ecx]
cmp eax, 0
je 0x10001bd3
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x78]
movsx eax, byte [eax + ecx]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x38]
mov word [ecx + edx*2], ax
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x78]
add eax, 1
mov dword [ebp - 0x78], eax
jmp 0x10001b96
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x40]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x64]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x260], esi
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
add eax, dword [ecx + 0x3c]
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ebp - 0x260]
add eax, dword [ecx + edx*8 + 0x78]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x8c]
add eax, dword [ecx + 0x20]
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x8c]
add eax, dword [ecx + 0x1c]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x8c]
add eax, dword [ecx + 0x24]
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x8c]
cmp eax, dword [ecx + 0x18]
jae 0x10001da9
add dword [eax], eax
invalid
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x64]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0x164]
call fcn.10001600
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0xa0], 0
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x2bc]
jae 0x10001d6c
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0xa0]
mov al, byte [eax + ecx]
mov byte [ebp - 0x3f], al
mov eax, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x304], ecx
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x308]
jae 0x10001d46
mov eax, dword [ebp - 0x304]
add eax, dword [ebp - 0x104]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x100]
add eax, 1
mov dword [ebp - 0x100], eax
jmp 0x10001d15
mov eax, dword [ebp - 0x104]
movzx ecx, byte [ebp - 0x3f]
add eax, ecx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xa0]
add eax, 1
mov dword [ebp - 0xa0], eax
jmp 0x10001cc5
mov eax, dword [ebp - 0xcc]
cmp eax, dword [ebp - 0x264]
jne 0x10001d9b
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp - 0x250]
mov esi, dword [ebp - 0x64]
movzx edx, word [edx + esi*2]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x150], eax
jmp 0x10001db3
mov eax, dword [ebp - 0x64]
add eax, 1
mov dword [ebp - 0x64], eax
jmp 0x10001c61
mov dword [ebp - 0x150], 0
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + 0xc]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi + 0x48]
mov edi, dword [ebp - 0x10]
mov edi, dword [edi + 0x4c]
mov ebx, dword [ebp - 0x4c]
xor eax, eax
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
call dword [ebp - 0x178]
sub esp, 0x1c
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x40]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x240], esi
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
add eax, dword [ecx + 0x3c]
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x23c]
mov edx, dword [ebp - 0x240]
add eax, dword [ecx + edx*8 + 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x88]
add eax, dword [ecx + 0x20]
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x88]
add eax, dword [ecx + 0x1c]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x88]
add eax, dword [ecx + 0x24]
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x88]
cmp eax, dword [ecx + 0x18]
jae 0x10001ff0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x238]
mov edx, dword [ebp - 0x60]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x248]
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x2c8], ecx
mov dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0x168]
call fcn.10001600
mov dword [ebp - 0x2c4], eax
invalid
inc edi
test dword [edi + edi*8 - 1], ebx
inc dword [eax]
add byte [eax], al
invalid
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x2c4]
jae 0x10001fb3
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0xa4]
mov al, byte [eax + ecx]
mov byte [ebp - 0x40], al
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], ecx
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0xf8]
cmp eax, dword [ebp - 0x300]
jae 0x10001f8d
mov eax, dword [ebp - 0x2fc]
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xf8]
add eax, 1
mov dword [ebp - 0xf8], eax
jmp 0x10001f5c
mov eax, dword [ebp - 0xfc]
movzx ecx, byte [ebp - 0x40]
add eax, ecx
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xa4]
add eax, 1
mov dword [ebp - 0xa4], eax
jmp 0x10001f0c
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp - 0x244]
jne 0x10001fe2
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x234]
mov edx, dword [ebp - 0x230]
mov esi, dword [ebp - 0x60]
movzx edx, word [edx + esi*2]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x14c], eax
jmp 0x10001ffa
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [ebp - 0x60], eax
jmp 0x10001ea8
mov dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x128]
xor edx, edx
mov dword [esp], ecx
mov dword [esp + 4], 0
call eax
sub esp, 8
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x40]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x58]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x220], esi
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx + 0x3c]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x220]
add eax, dword [ecx + edx*8 + 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x84]
add eax, dword [ecx + 0x20]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x84]
add eax, dword [ecx + 0x1c]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x84]
add eax, dword [ecx + 0x24]
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x5c], 0