Function at 0x445ae0
Capabilities:
Access peb ldr_data
Get kernel32 base address
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x445ff1
sub esp, 0x34
mov eax, dword [esp + 0x40]
test eax, eax
sete cl
setl dl
mov ebx, dword [esp + 0x3c]
test ebx, ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x445fe6
mov eax, 0xffffffff
mov ecx, 0x7fffffff
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x38]
test byte [eax], al
lea ecx, [eax + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp], ecx
call fcn.00401f70
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
cmp eax, 3
ja 0x445f94
cmp eax, 1
jbe 0x445e83
cmp eax, 2
jne 0x445b7e
mov eax, dword [0x59a188]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.004549e0
jmp 0x445b32
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x78]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x445bf6
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445b32
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445b32
mov dword [eax + 8], 0xfffffade
jmp 0x445b32
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
test byte [ecx], al
add ecx, 0x140c
mov dword [esp], ecx
mov dword [esp + 4], 0xffffffff
call fcn.004020a0
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x10], edx
mov edx, dword [0x5ab4f0]
test edx, edx
jne 0x445e6e
mov edx, dword [esp + 0x4c]
mov dword [ebx + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [ebx + 0x18], edx
mov edx, dword [0x5ab4f0]
test edx, edx
jne 0x445e59
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x1c], edx
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x58]
mov dword [ebx + 0x20], edx
test al, al
jne 0x445d8c
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x24], eax
mov edx, dword [esp + 0x40]
mov dword [ebx + 0x28], edx
cmp dword [ebx + 4], eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov esi, dword [ebx + 8]
cmp edx, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setl bl
xchg edi, ebx
and ebp, esi
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x445d82
mov ebp, 7
mov esi, dword [esp + 0x10]
cmp esi, 7
jne 0x445d7b
mov esi, 0xffffffff
cmp ebp, 7
jne 0x445cc6
inc esi
mov dword [esp + 0x14], ebp
test esi, esi
jne 0x445d5d
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], 6
mov dword [esp + 8], ebp
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
je 0x445d56
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445d4d
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445d44
mov dword [eax + 8], 0xfffffade
mov eax, dword [esp + 0x14]
cmp eax, 7
je 0x445d2e
add esp, 0x34
ret
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call fcn.00434c80
jmp 0x445d2a
mov eax, dword [esp + 0x14]
cmp eax, 7
jmp 0x445d28
mov eax, dword [esp + 0x14]
cmp eax, 7
jmp 0x445d28
call fcn.00447640
jmp 0x445cf3
mov eax, dword [ebx]
test byte [eax], al
add eax, 0x1408
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.004020a0
mov ebp, dword [esp + 0x14]
jmp 0x445cd2
xor esi, esi
jmp 0x445cc0
mov ebp, 8
jmp 0x445cae
mov eax, dword [esp + 0x3c]
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x40]
mov dword [ebx + 8], ecx
mov edx, dword fs:[0x14]
mov edx, dword [edx]
mov edx, dword [edx + 0x18]
mov edx, dword [edx + 0x54]
mov dword [esp + 0x2c], edx
test byte [edx], al
lea ebp, [edx + 0x13f4]
mov dword [esp + 0x28], ebp
mov dword [esp], ebp
call fcn.00408430
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.00445310
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408610
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], 6
mov dword [esp + 8], 1
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
je 0x445e52
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445e39
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445e39
mov dword [eax + 8], 0xfffffade
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call fcn.00434c80
jmp 0x445d2a
call fcn.00447640
jmp 0x445e0a
lea edi, [ebx + 0x1c]
mov edx, eax
mov eax, dword [esp + 0x54]
call fcn.00453b50
mov eax, edx
jmp 0x445c5d
lea edi, [ebx + 0x14]
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.00453b50
mov eax, edx
jmp 0x445c41
test eax, eax
jne 0x445f11
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x78]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x445f03
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445b32
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445b32
mov dword [eax + 8], 0xfffffade
jmp 0x445b32
mov eax, 1
mov ecx, dword [esp + 0x1c]
jmp 0x445c1a
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x78]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x445f89
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445b32
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445b32
mov dword [eax + 8], 0xfffffade
jmp 0x445b32
xor eax, eax
mov ecx, dword [esp + 0x24]
jmp 0x445c1a
cmp eax, 5
ja 0x445fa7
cmp eax, 4
je 0x445b66
jmp 0x445e8b
cmp eax, 6
je 0x445fcb
lea ecx, [eax - 7]
cmp ecx, 1
jbe 0x445f11
cmp eax, 9
je 0x445b66
call fcn.00447640
jmp 0x445b32
mov eax, dword [0x59a188]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.004549e0
jmp 0x445b32
mov eax, ebx
mov ecx, dword [esp + 0x40]
jmp 0x445b2a
call fcn.00452310
jmp fcn.00445ae0