Function at 0x408140
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x44aa9b
mov eax, dword fs:[0]
push eax
sub esp, 0x250
mov eax, dword [0x46132c]
xor eax, esp
mov dword [esp + 0x24c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x46132c]
xor eax, esp
push eax
lea eax, [esp + 0x264]
mov dword fs:[0], eax
mov esi, dword [esp + 0x278]
push 0x104
xor ebx, ebx
lea eax, [esp + 0x5c]
push ebx
push eax
mov edi, ecx
mov byte [esp + 0x22], 1
call fcn.004327f0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
add esp, 0xc
lea edx, [esp + 0x58]
push edx
mov edx, dword [esi + 0x2c]
push edx
push eax
mov eax, dword [esi + 0x30]
push eax
push ecx
mov ecx, edi
call fcn.004071a0
test al, al
je 0x408221
lea ecx, [esp + 0x58]
push ecx
push 0x10001
push ebx
push ebx
push 0xa
call dword [0x44e054]
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x408221
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
lea edx, [esp + 0x3c]
push edx
lea eax, [esi + 0x10]
push eax
mov eax, dword [esp + 0x27c]
push eax
mov ecx, edi
mov dword [esp + 0x278], ebx
call fcn.00407b50
test al, al
jne 0x408228
cmp dword [esp + 0x54], 0x10
jb 0x408221
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00415a69
add esp, 4
xor al, al
jmp 0x4083ff
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x408237
lea eax, [esp + 0x40]
push ebx
push ebx
push 0xffffffffffffffff
push eax
push ebx
push ebx
mov ebx, dword [0x44e2d0]
call ebx
xor ecx, ecx
mov ebp, eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00415a74
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x408279
lea ecx, [esp + 0x3c]
call fcn.0040d110
xor al, al
jmp 0x4083ff
cmp dword [esp + 0x54], 0x10
mov ecx, dword [esp + 0x40]
jae 0x408288
lea ecx, [esp + 0x40]
push ebp
push eax
push 0xffffffffffffffff
push ecx
push 0
push 0
call ebx
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x20], ecx
lea edx, [esp + 0x38]
push edx
mov edx, dword [esp + 0x278]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x54]
lea ecx, [esi + 0x10]
push ecx
mov ecx, dword [esi + 0x30]
push ecx
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov ebx, 1
push eax
push edx
mov ecx, edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x4c], ebx
call fcn.00407660
mov ecx, dword [esi + 0x2c]
mov ebp, eax
mov eax, dword [esi + 8]
push ecx
push eax
push 0x10001
call dword [0x44e040]
mov edi, eax
test edi, edi
je 0x408269
test ebp, ebp
je 0x40835a
mov eax, dword [edi + 0xc]
push ebx
lea edx, [esp + 0x1b]
push edx
push eax
push 0x10001
mov byte [esp + 0x27], 0
call dword [0x44e034]
test eax, eax
je 0x40835a
mov cl, byte [esp + 0x17]
xor ebp, ebp
xor eax, eax
test cl, 0x30
je 0x40833d
mov ebp, ebx
test cl, 0xc0
je 0x408344
mov eax, ebx
test ebp, ebp
je 0x40834e
mov dword [esp + 0x38], ebx
jmp 0x40835a
xor ecx, ecx
test eax, eax
setne cl
inc ecx
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x20]
push eax
push 0
push 2
push edi
mov dword [esi + 0x34], edx
call dword [0x44e060]
mov ecx, 0x44f26c
lea eax, [esp + 0x58]
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4083a6
test dx, dx
je 0x4083a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4083a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x408380
xor eax, eax
jmp 0x4083ab
sbb eax, eax
sbb eax, 0xffffffff
push 0
test eax, eax
jne 0x4083bb
mov ecx, dword [esp + 0x1c]
push 2
push edi
push ecx
jmp 0x4083c3
mov edx, dword [esp + 0x1c]
push 3
push edi
push edx
call dword [0x44e05c]
test eax, eax
jne 0x4083d1
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x18]
push 2
push eax
call dword [0x44e058]
push edi
call dword [0x44e030]
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00415a69
add esp, 4
lea ecx, [esp + 0x3c]
call fcn.0040d110
mov al, byte [esp + 0x16]
mov ecx, dword [esp + 0x264]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24c]
xor ecx, esp
call fcn.004327c2
add esp, 0x25c
ret 8