Function at 0x5416b4
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x541b6d
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x5416f3
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 1
je 0x5419c2
mov byte [ebp - 5], 0
test bl, bl
je 0x541709
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00552a00
test al, al
jne 0x54170d
xor eax, eax
jmp 0x54170f
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.0053cf10
xor eax, eax
push ebp
push 0x5419bb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
mov edx, dword [eax]
call dword [edx + 0x38]
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
setle al
or al, byte [ebp + 0xc]
je 0x54177a
test esi, esi
jle 0x541764
mov eax, dword [ebp - 4]
call fcn.00540ee4
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x54177a
test esi, esi
jge 0x54177a
mov eax, dword [ebp - 4]
call fcn.00540ee4
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x54197b
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x541957
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 0x10
je 0x5418c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
cmp byte [eax + 0x15], 0
je 0x5418c9
test bl, bl
je 0x5418c1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3cd], 0
jne 0x54184b
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.0050ff30
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x3d4
call fcn.00404498
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.0050fe28
mov edx, dword [ebp - 4]
mov byte [edx + 0x4f6], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x54182b
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x54183b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 4]
mov byte [eax + 0x3cd], 1
mov byte [ebp - 5], 1
jmp 0x5418c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0050ff30
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3d4]
mov eax, dword [ebp - 0xc]
call fcn.0050ff98
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
pop edx
mov edi, edx
cdq
idiv edi
neg eax
cmp ecx, eax
setne byte [ebp - 5]
cmp byte [ebp - 5], 0
jne 0x5418c9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x5418b5
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x5418c9
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x5418c9
mov eax, dword [ebp - 4]
call fcn.00541658
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004f4e38
push eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, eax
pop eax
call fcn.004f9f9c
test eax, eax
jne 0x541903
call fcn.00403e6c
call fcn.00403e6c
jmp 0x541b52
cmp byte [ebp - 5], 0
je 0x541941
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x541931
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x541941
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp byte [ebp + 0xc], 0
jne 0x54194f
test esi, esi
jle 0x54194e
dec esi
jmp 0x54194f
inc esi
test esi, esi
jne 0x541790
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x541982
cmp byte [ebp - 6], 0
je 0x54197a
mov eax, dword [ebp - 4]
call fcn.00540ee4
mov eax, dword [eax + 0x30]
call fcn.004f9398
ret
test bl, bl
je 0x5419d4
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00552a00
test al, al
jne 0x5419d8
xor eax, eax
jmp 0x5419da
mov al, 1
mov ebx, eax
test bl, bl
jne 0x5419fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004f4e38
mov edx, esi
call fcn.004f9f9c
jmp 0x541b3b
mov eax, dword [ebp - 4]
call fcn.0053cf10
xor edx, edx
push ebp
push 0x541b34
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
cmp byte [eax + 0x10], 2
je 0x541a6d
mov eax, dword [eax + 0xc]
call fcn.00554d90
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x11c]
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
call fcn.00552200
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0053cea8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.005552cc
cmp byte [ebp + 0xc], 0
je 0x541aa0
dec esi
jne 0x541a8b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004f4e38
call fcn.004f9f00
jmp 0x541ab5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004f4e38
call fcn.004f9e28
jmp 0x541ab5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004f4e38
mov edx, esi
call fcn.004f9f9c
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x11c]
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
call fcn.00552200
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0053cea8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.005552cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x541b3b
mov eax, dword [ebp - 4]
call fcn.00540ed4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x408], 0
jne 0x541b33
mov eax, dword [ebp - 4]
cmp byte [eax + 0x43d], 0
je 0x541b33
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x158]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x408], 0
jne 0x541b52
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x88]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x541b74
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404468
ret