Function at 0x648bd0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
call fcn.006471fc
test al, al
je 0x6490fb
mov al, byte [ebp + 8]
mov byte [ebp - 0x11], al
mov al, byte [ebp - 0x11]
mov edx, dword [ebp - 4]
cmp al, byte [edx + 0x350]
jl 0x648c11
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
mov edx, dword [0x51e0dc]
call fcn.00408ba0
test al, al
je 0x648f4c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x350], 1
jne 0x648e00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov edx, dword [eax]
call dword [edx + 0x2c]
test al, al
jne 0x648c6c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x7c]
test al, al
jne 0x648dd8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x33c], 2
jne 0x648dd8
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x648dd1
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x51e0dc]
call fcn.00528328
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.0049c514
mov eax, dword [ebp - 0x10]
call fcn.00528d10
mov eax, dword [eax + 0x48]
mov edx, 0xffffff
call fcn.00521288
mov eax, dword [ebp - 0x10]
call fcn.00528d10
lea edx, [ebp - 0x38]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
push eax
mov eax, dword [ebp - 0x10]
call fcn.00528d10
xor ecx, ecx
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov eax, dword [eax + 0x40]
call fcn.00520708
mov dl, 1
mov eax, dword [ebp - 0x10]
call fcn.0052a020
mov dl, 1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x18]
call fcn.00520708
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6490fb
mov eax, dword [ebp - 0x10]
call fcn.004088bc
pop eax
jmp eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x44]
jmp 0x6490fb
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x648f45
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x51e0dc]
call fcn.00528328
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x350]
mov ecx, edx
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
mov edx, dword [eax]
call dword [edx + 0x28]
call fcn.005280b4
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
xor edx, edx
mov dl, byte [ebp - 0x11]
inc edx
imul edx
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
xor edx, edx
mov dl, byte [ebp - 0x11]
imul edx
xor edx, edx
pop ecx
call fcn.0049c514
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.0049c514
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.005251f0
call fcn.00528d10
push eax
mov eax, dword [ebp - 0x10]
call fcn.00528d10
lea edx, [ebp - 0x38]
pop ecx
call fcn.00521b04
mov dl, 1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x44]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6490fb
mov eax, dword [ebp - 0x10]
call fcn.004088bc
pop eax
jmp eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
test al, al
jne 0x648f74
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x7c]
test al, al
jne 0x6490da
mov eax, dword [ebp - 4]
cmp byte [eax + 0x33c], 2
jne 0x6490da
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x6490d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x51e0dc]
call fcn.00528328
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.0049c514
mov eax, dword [ebp - 0x10]
call fcn.00528d10
mov eax, dword [eax + 0x48]
mov edx, 0xffffff
call fcn.00521288
mov eax, dword [ebp - 0x10]
call fcn.00528d10
lea edx, [ebp - 0x38]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00528d10
xor ecx, ecx
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x340]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov eax, dword [eax + 0x40]
call fcn.00520708
mov dl, 1
mov eax, dword [ebp - 0x10]
call fcn.0052a020
mov dl, 1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x18]
call fcn.00520708
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6490fb
mov eax, dword [ebp - 0x10]
call fcn.004088bc
pop eax
jmp eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x44]
pop ebx
mov esp, ebp
pop ebp
ret 4