Function at 0x415c00
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x414093
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push esi
push edi
mov eax, dword [0x41a090]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov eax, dword [0x41a000]
mov ecx, 0x41a000
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x38], eax
and dword [esp + 0xd0], 0
and dword [esp + 0x34], 0
lea esi, [esp + 0x64]
mov byte [esp + 0x1f], 0
mov dword [esp + 0x5c], 0x417424
call fcn.00416271
lea esi, [esp + 0x68]
call fcn.00416271
lea eax, [esp + 0x6c]
push eax
mov byte [esp + 0xd4], 2
call fcn.00418eb4
lea esi, [esp + 0xb8]
call fcn.00416271
lea esi, [esp + 0xbc]
call fcn.00416271
lea esi, [esp + 0xc0]
call fcn.00416271
lea eax, [esp + 0x14]
push eax
mov edi, 0x4172d4
mov byte [esp + 0xd4], 3
call fcn.00416286
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xd4], 4
call fcn.00418141
pop ecx
mov byte [esp + 0xd0], 6
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004169c7
lea eax, [esp + 0x18]
push 0x4172e0
push eax
lea ecx, [esp + 0x28]
call fcn.0041640a
mov ebx, 0x4172dc
lea ecx, [esp + 0x30]
push ebx
push ecx
mov edi, eax
mov byte [esp + 0xe0], 7
call fcn.004163b1
add esp, 0x10
mov byte [esp + 0xd0], 9
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.004169c7
lea eax, [esp + 0x5c]
push eax
call fcn.00416dbf
test al, al
je 0x416096
lea esi, [esp + 0x5c]
call fcn.00417074
mov eax, dword [0x41a000]
mov ecx, 0x41a000
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x2c], eax
push 4
lea eax, [esp + 0x18]
push eax
push 0x417430
mov byte [esp + 0xdc], 0xa
xor esi, esi
push 0x4174e8
mov dword [esp + 0x24], esi
call fcn.00417fa8
add esp, 0x10
test al, al
je 0x415d93
cmp dword [esp + 0x14], 1
je 0x415e87
call fcn.00417dbc
test al, al
jne 0x415e87
call fcn.00417e0a
test al, al
jne 0x415e87
call fcn.00417e58
test al, al
je 0x415e3b
lea esi, [esp + 0x14]
lea eax, [esp + 0x5c]
call fcn.00416da3
mov eax, esi
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0xd4], 0xe
call fcn.00418221
pop ecx
mov eax, 0x41c240
lea edi, [esp + 0x2c]
call fcn.004162d4
lea eax, [esp + 0x24]
push 0x4172ec
push eax
lea ecx, [esp + 0x28]
call fcn.0041640a
lea ecx, [esp + 0x20]
push ebx
push ecx
mov edi, eax
mov byte [esp + 0xe0], 0xf
call fcn.004163b1
add esp, 0x10
lea edi, [esp + 0x28]
mov byte [esp + 0xd0], 0x10
call fcn.004162d4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x24]
jmp 0x415f03
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x60]
call fcn.0041723b
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0xd4], 0x11
call fcn.00418221
pop ecx
mov eax, 0x41c244
lea edi, [esp + 0x2c]
call fcn.004162d4
mov byte [esp + 0xd0], 0xa
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004169c7
jmp 0x415f21
lea esi, [esp + 0x14]
lea eax, [esp + 0x5c]
call fcn.00416da3
mov eax, esi
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0xd4], 0xb
call fcn.00418221
pop ecx
mov eax, 0x41c23c
lea edi, [esp + 0x2c]
call fcn.004162d4
lea eax, [esp + 0x18]
push 0x4172ec
push eax
lea ecx, [esp + 0x28]
call fcn.0041640a
lea ecx, [esp + 0x2c]
push ebx
push ecx
mov edi, eax
mov byte [esp + 0xe0], 0xc
call fcn.004163b1
add esp, 0x10
lea edi, [esp + 0x28]
mov byte [esp + 0xd0], 0xd
call fcn.004162d4
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.004169c7
mov byte [esp + 0xd0], 0xa
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004169c7
xor esi, esi
lea eax, [esp + 0x18]
push eax
mov edi, 0x4172fc
call fcn.00416286
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xd4], 0x12
call fcn.004160e7
pop ecx
mov byte [esp + 0xd0], 0x14
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x30]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov edi, esp
call fcn.004166ef
add eax, 0x10
mov dword [edi], eax
lea eax, [esp + 0x28]
push eax
mov edi, 0x417308
mov byte [esp + 0xd8], 0x15
call fcn.00416286
push ecx
mov ecx, esp
lea edx, [esp + 0x34]
mov dword [esp + 0x44], esp
push edx
push ecx
mov edi, eax
mov byte [esp + 0xe0], 0x16
call fcn.00416364
pop ecx
pop ecx
mov byte [esp + 0xd8], 0x17
call fcn.0041849f
mov edi, eax
mov byte [esp + 0xd8], 0x14
mov eax, dword [esp + 0x2c]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.004169c7
cmp edi, esi
jl 0x41607e
call dword [0x415098]
lea ecx, [esp + 0x14]
push ecx
mov edi, eax
call fcn.00416286
mov byte [esp + 0xd0], 0x18
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], esi
jl 0x41601b
mov edi, 0x417358
push edi
push eax
call fcn.0041b26c
pop ecx
pop ecx
cmp eax, esi
je 0x41601b
sub eax, dword [esp + 0x14]
js 0x41601b
push edi
lea eax, [esp + 0x2c]
push eax
call fcn.0041633e
lea eax, [esp + 0x1f]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004182b2
mov edi, dword [0x4151b8]
add esp, 0x14
jmp 0x41605a
lea eax, [esp + 0x40]
push eax
call dword [0x4151b4]
lea eax, [esp + 0x40]
push eax
call dword [0x4151b0]
push esi
push esi
push esi
lea eax, [esp + 0x4c]
push eax
call edi
test eax, eax
jne 0x416044
push dword [esp + 0x30]
call dword [0x415090]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.004169c7
lea ecx, [esp + 0x5c]
mov byte [esp + 0xd0], 0
call fcn.00416d40
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.004169c7
mov eax, esi
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret