Function at 0x4022ce
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov esi, ecx
mov eax, dword [0x4158fc]
mov ecx, dword [0x415900]
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete byte [esp + 0xe]
cmp ecx, 0xa
setl byte [esp + 0xf]
mov dword [esp + 8], 0x66d8604b
mov edi, 0xafa9a45e
mov ebx, 0xb9a29232
mov ebp, 0xc79c03cd
mov eax, dword [esp + 8]
cmp eax, 0x6e44c96
jle 0x4023ae
cmp eax, 0x4d846e91
jg 0x40240e
cmp eax, 0x189223cb
jle 0x402505
cmp eax, 0x189223cc
je 0x40275c
cmp eax, 0x22ba2dfc
je 0x40278f
cmp eax, 0x316882d0
jne 0x40230f
mov eax, dword [esp + 0x64]
add eax, 4
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
add eax, 2
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
add eax, dword [esp]
push str.LdrGetProcedureAddress
push eax
call fcn.00401bdc
add esp, 8
test eax, eax
sete byte [esp + 0x13]
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
cmp dword [0x415900], 0xa
mov eax, 0xd93891d5
cmovl eax, edi
test cl, 1
cmove eax, edi
mov dword [esp + 8], eax
jmp 0x40230f
cmp eax, 0xc5354bbe
jle 0x402459
cmp eax, 0xd93891d4
jle 0x4025d0
cmp eax, 0xd93891d5
je 0x4027c0
cmp eax, 0xe0121a94
je 0x4027f2
cmp eax, 0xff3ed0b1
jne 0x40230f
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, dword [esp + 0x20]
cmp dword [0x415900], 0xa
mov dword [esp + 0x6c], eax
mov eax, 0xa75fabab
mov edx, 0x632cdd1c
jmp 0x4029ad
cmp eax, 0x66d8604a
jle 0x402693
cmp eax, 0x7c4ffea9
je 0x402825
cmp eax, 0x709a75fc
je 0x402858
cmp eax, 0x66d8604b
jne 0x40230f
mov al, byte [esp + 0xe]
cmp byte [esp + 0xf], 0
mov ecx, 0x709a75fc
cmovne ecx, ebp
test al, al
cmovne ecx, ebp
mov dword [esp + 8], ecx
jmp 0x40230f
cmp eax, 0xafa9a45d
jle 0x4026ec
cmp eax, 0xafa9a45e
je 0x4028ab
cmp eax, 0xb2964d94
jne 0x4029bf
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
add eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
movzx ecx, word [ecx]
mov eax, dword [eax + ecx*4]
add eax, dword [esp + 4]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp]
mov eax, dword [eax + ecx + 0x78]
add eax, dword [esp]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
add eax, dword [esp]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
add eax, dword [esp]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
add eax, dword [esp]
push str.LdrGetProcedureAddress
push eax
call fcn.00401bdc
add esp, 8
test eax, eax
sete byte [esp + 0x12]
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
cmp dword [0x415900], 0xa
mov eax, 0x16002cf7
mov edx, 0xe0121a94
jmp 0x4029ad
cmp eax, 0x6e44c97
je 0x4028de
cmp eax, 0x16002cf7
jne 0x40230f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
add eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
movzx ecx, word [ecx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 4]
mov ecx, dword [esp + 4]
add eax, dword [esp + 4]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov eax, dword [eax + ecx + 0x78]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov eax, dword [eax + ecx + 0x20]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov edx, dword [esp]
mov edx, dword [esp]
mov edx, dword [esp]
mov eax, dword [eax + ecx]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
add eax, dword [esp]
push str.LdrGetProcedureAddress
push eax
call fcn.00401bdc
add esp, 8
mov dword [esp + 8], 0xb2964d94
jmp 0x40230f
cmp eax, 0xc5354bbf
je 0x402931
cmp eax, 0xc79c03cd
jne 0x40230f
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov eax, dword [esp]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x14], eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x10], eax
mov dword [esp + 4], eax
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 4]
mov eax, dword [eax + ecx + 0x78]
add eax, dword [esp + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
add eax, dword [esp + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
add eax, dword [esp + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
add eax, dword [esp + 4]
push 0x411a0b
push eax
call fcn.00401bdc
add esp, 8
test eax, eax
sete byte [esp + 0x10]
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
cmp dword [0x415900], 0xa
mov eax, 0x709a75fc
mov edx, 0x189223cc
jmp 0x4029ad
cmp eax, 0x4d846e92
je 0x40295f
cmp eax, 0x632cdd1c
jne 0x40230f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
add eax, dword [esp]
mov ecx, dword [esp + 0x6c]
movzx ecx, word [ecx]
mov eax, dword [eax + ecx*4]
add eax, dword [esp]
mov dword [esi + 4], eax
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
cmp dword [0x415900], 0xa
mov eax, 0xa75fabab
cmovl eax, ebx
test cl, 1
cmove eax, ebx
mov dword [esp + 8], eax
jmp 0x40230f
cmp eax, 0xa0f72742
je 0x402989
cmp eax, 0xa75fabab
jne 0x40230f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
add eax, dword [esp]
mov ecx, dword [esp + 0x6c]
movzx ecx, word [ecx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
add eax, dword [esp]
mov dword [esi + 4], eax
mov dword [esp + 8], 0x632cdd1c
jmp 0x40230f
cmp byte [esp + 0x10], 0
mov eax, 0xc5354bbf
mov ecx, 0xa0f72742
cmovne eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
jmp 0x40230f
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, dword [esp + 0x28]
cmp dword [0x415900], 0xa
mov dword [esp + 0x68], eax
mov eax, 0xd93891d5
mov edx, 0x316882d0
jmp 0x4029ad
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 4]
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, dword [esp]
add eax, dword [esp]
push str.LdrGetProcedureAddress
push eax
call fcn.00401bdc
add esp, 8
mov dword [esp + 8], 0x316882d0
jmp 0x40230f
cmp byte [esp + 0x12], 0
mov eax, 0x22ba2dfc
mov ecx, 0xff3ed0b1
cmovne eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
jmp 0x40230f
cmp byte [esp + 0x11], 0
mov eax, 0xc5354bbf
mov ecx, 0xa0f72742
cmovne eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
jmp 0x40230f
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x14], eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x10], eax
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
mov ecx, dword [ecx + eax + 0x20]
add eax, dword [ecx + eax]
push 0x411a0b
push eax
call fcn.00401bdc
add esp, 8
mov dword [esp + 8], 0xc79c03cd
jmp 0x40230f
cmp byte [esp + 0x13], 0
mov eax, 0x22ba2dfc
mov ecx, 0xff3ed0b1
cmovne eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
jmp 0x40230f
mov eax, dword [esp + 0x58]
add eax, 4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
add eax, 2
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
add eax, dword [esp + 4]
push 0x411a0b
push eax
call fcn.00401bdc
add esp, 8
test eax, eax
sete byte [esp + 0x11]
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
cmp dword [0x415900], 0xa
mov eax, 0x4d846e92
mov edx, 0x7c4ffea9
jmp 0x4029ad
mov eax, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, dword [esp + 0x34]
cmp dword [0x415900], 0xa
mov dword [esp + 0x5c], eax
mov eax, 0x4d846e92
mov edx, 0x6e44c97
jmp 0x4029ad
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + 4]
add eax, dword [esp + 4]
push 0x411a0b
push eax
call fcn.00401bdc
add esp, 8
mov dword [esp + 8], 0x6e44c97
jmp 0x40230f
mov eax, dword [0x4158fc]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, dword [esp + 0x2c]
cmp dword [0x415900], 0xa
mov dword [esp + 0x60], eax
mov eax, 0x16002cf7
mov edx, 0xb2964d94
cmovl eax, edx
test cl, 1
cmove eax, edx
mov dword [esp + 8], eax
jmp 0x40230f
cmp eax, 0xb9a29232
jne 0x40230f
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret