Function at 0x404550
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x6dfe78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push ebp
push esi
add ecx, 4
push edi
mov dword [esp + 0x14], ecx
call fcn.00409a20
mov ebx, eax
mov dword [esp + 0x10], ebx
lea ecx, [ebx + 4]
call fcn.00409b00
mov ecx, dword [esp + 0x74]
mov esi, eax
mov eax, dword [ecx]
mov dword [esi], eax
mov edx, dword [ecx + 4]
mov edi, eax
mov dword [esi + 4], edx
shl eax, 6
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 8], eax
mov eax, edi
shl eax, 5
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x30], eax
mov al, byte [0x81de20]
test al, al
jne 0x4045c9
mov ecx, 0x81de10
call fcn.005c0bd0
mov ecx, dword [0x71eb00]
push ecx
push 0
push 0x81de10
lea ecx, [esi + 0x34]
call fcn.00407c50
lea edx, [esp + 0x74]
mov dword [esi + 0x54], 1
mov dword [ebx], 0
mov eax, dword [esi]
push edx
push 0x20
push 1
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x84], 0
call fcn.0040ace0
mov eax, dword [esi + 0x14]
mov ebp, dword [esi]
lea edi, [esi + 0x10]
mov dword [esp + 0x6c], 0
test eax, eax
jne 0x404621
xor ecx, ecx
jmp 0x404629
mov ecx, dword [edi + 8]
sub ecx, eax
sar ecx, 3
cmp ecx, ebp
jae 0x40464d
mov ebx, dword [edi + 8]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.005c79a0
sub ebp, eax
mov ecx, edi
push ebp
push ebx
call fcn.005df630
mov ebx, dword [esp + 0x10]
jmp 0x40466a
mov ecx, edi
call fcn.005c79a0
cmp ebp, eax
jae 0x40466a
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
push eax
lea ecx, [ecx + ebp*8]
push ecx
mov ecx, edi
call fcn.0046e100
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4046a2
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov edi, dword [esi + 0x14]
inc eax
add ecx, 0xc
mov edx, dword [edx + 8]
mov edx, dword [ecx + edx - 8]
mov dword [edi + eax*8 - 8], edx
mov edx, dword [esp + 0x4c]
mov edi, dword [esi + 0x14]
mov edx, dword [edx + 8]
mov edx, dword [ecx + edx - 4]
mov dword [edi + eax*8 - 4], edx
mov edx, dword [esi]
cmp eax, edx
jl 0x404674
lea ecx, [esp + 0x38]
mov dword [esp + 0x6c], 0xffffffff
call fcn.00550a60
mov eax, dword [esi]
lea ecx, [esp + 0x74]
push ecx
push 0x20
push 1
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x84], 0
call fcn.0040af00
mov ebp, dword [esi]
mov eax, dword [esi + 0x24]
lea edi, [esi + 0x20]
inc ebp
test eax, eax
mov dword [esp + 0x6c], 1
jne 0x4046e9
xor ecx, ecx
jmp 0x4046f1
mov ecx, dword [edi + 8]
sub ecx, eax
sar ecx, 3
cmp ecx, ebp
jae 0x404715
mov ebx, dword [edi + 8]
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.005c79a0
sub ebp, eax
mov ecx, edi
push ebp
push ebx
call fcn.005df630
mov ebx, dword [esp + 0x10]
jmp 0x404732
mov ecx, edi
call fcn.005c79a0
cmp ebp, eax
jae 0x404732
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push eax
lea eax, [ecx + ebp*8]
mov ecx, edi
push eax
call fcn.0046e100
mov ecx, dword [esi]
xor ebp, ebp
xor eax, eax
cmp ecx, ebp
jl 0x40476c
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov edi, dword [esi + 0x24]
inc eax
add ecx, 0xc
mov edx, dword [edx + 8]
mov edx, dword [ecx + edx - 8]
mov dword [edi + eax*8 - 8], edx
mov edx, dword [esp + 0x4c]
mov edi, dword [esi + 0x24]
mov edx, dword [edx + 8]
mov edx, dword [ecx + edx - 4]
mov dword [edi + eax*8 - 4], edx
mov edx, dword [esi]
cmp eax, edx
jle 0x40473e
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 2
call fcn.00556c60
lea ecx, [esp + 0x4c]
mov dword [esp + 0x6c], 0xffffffff
call fcn.0055c2e0
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [edi]
mov ecx, dword [eax + 8]
mov esi, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], ebp
add eax, 0x1f
mov dword [esp + 0x2c], 0xfffffff8
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
lea eax, [esi + 0x1f]
cdq
and edx, 0x1f
add eax, edx
sar ecx, 5
sar eax, 5
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
call fcn.0040a800
mov dword [esp + 0x24], eax
mov edx, dword [eax]
inc edx
mov dword [eax], edx
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
push edx
mov dword [esp + 0x70], 3
call fcn.00403e80
mov eax, dword [edi]
mov edx, dword [ebx + 8]
lea edi, [ebx + 8]
mov dword [esp + 0x6c], 4
mov ecx, dword [eax + 8]
mov eax, dword [edx]
cmp eax, 1
mov esi, dword [ecx + 8]
jbe 0x40481b
mov ecx, edi
call fcn.0040ac10
mov edi, dword [edi]
add edi, 4
mov ecx, edi
call fcn.00437910
cmp eax, esi
jae 0x404847
mov ebp, dword [edi + 8]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00437910
sub esi, eax
mov ecx, edi
push esi
push ebp
call fcn.00408510
jmp 0x404866
mov ecx, edi
call fcn.00437910
cmp esi, eax
jae 0x404866
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
shl esi, 4
add esi, ecx
push eax
push esi
mov ecx, edi
call fcn.004087e0
lea ecx, [esp + 0x24]
mov dword [esp + 0x6c], 0xffffffff
call fcn.00409aa0
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x60
ret 4