Function at 0x55da4c
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 0x55df05
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x55da8b
mov eax, dword [ebp - 4]
test byte [eax + 0x369], 1
je 0x55dd5a
mov byte [ebp - 5], 0
test bl, bl
je 0x55daa1
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0056fc9c
test al, al
jne 0x55daa5
xor eax, eax
jmp 0x55daa7
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.00559678
xor eax, eax
push ebp
push 0x55dd53
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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 0x55db12
test esi, esi
jle 0x55dafc
mov eax, dword [ebp - 4]
call fcn.0055d27c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x55db12
test esi, esi
jge 0x55db12
mov eax, dword [ebp - 4]
call fcn.0055d27c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x55dd13
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x55dcef
mov eax, dword [ebp - 4]
test byte [eax + 0x369], 0x10
je 0x55dc61
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
cmp byte [eax + 0x15], 0
je 0x55dc61
test bl, bl
je 0x55dc59
mov eax, dword [ebp - 4]
cmp byte [eax + 0x375], 0
jne 0x55dbe3
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.005578ac
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x37c
call fcn.00404834
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0055791c
mov edx, dword [ebp - 4]
mov byte [edx + 0x496], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x55dbc3
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.00557bc4
jmp 0x55dbd3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.00557bc4
mov eax, dword [ebp - 4]
mov byte [eax + 0x375], 1
mov byte [ebp - 5], 1
jmp 0x55dc61
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.005578ac
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x37c]
mov eax, dword [ebp - 0xc]
call fcn.00557890
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 0x55dc61
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x55dc4d
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
mov eax, dword [ebp - 0xc]
call fcn.00557bc4
jmp 0x55dc61
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.00557bc4
jmp 0x55dc61
mov eax, dword [ebp - 4]
call fcn.0055d9f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004b6bcc
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.004bc3cc
test eax, eax
jne 0x55dc9b
call fcn.004042a8
call fcn.004042a8
jmp 0x55deea
cmp byte [ebp - 5], 0
je 0x55dcd9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x55dcc9
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.00557bc4
jmp 0x55dcd9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.00557bc4
cmp byte [ebp + 0xc], 0
jne 0x55dce7
test esi, esi
jle 0x55dce6
dec esi
jmp 0x55dce7
inc esi
test esi, esi
jne 0x55db28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55dd1a
cmp byte [ebp - 6], 0
je 0x55dd12
mov eax, dword [ebp - 4]
call fcn.0055d27c
mov eax, dword [eax + 0x30]
call fcn.004bb7c8
ret
test bl, bl
je 0x55dd6c
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0056fc9c
test al, al
jne 0x55dd70
xor eax, eax
jmp 0x55dd72
mov al, 1
mov ebx, eax
test bl, bl
jne 0x55dd92
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004b6bcc
mov edx, esi
call fcn.004bc3cc
jmp 0x55ded3
mov eax, dword [ebp - 4]
call fcn.00559678
xor edx, edx
push ebp
push 0x55decc
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
cmp byte [eax + 0x10], 2
je 0x55de05
mov eax, dword [eax + 0xc]
call fcn.00571edc
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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.0056f340
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.00559610
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00572418
cmp byte [ebp + 0xc], 0
je 0x55de38
dec esi
jne 0x55de23
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004b6bcc
call fcn.004bc330
jmp 0x55de4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004b6bcc
call fcn.004bc258
jmp 0x55de4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004b6bcc
mov edx, esi
call fcn.004bc3cc
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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.0056f340
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.00559610
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00572418
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55ded3
mov eax, dword [ebp - 4]
call fcn.0055d26c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3b0], 0
jne 0x55decb
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3e5], 0
je 0x55decb
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x13c]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3b0], 0
jne 0x55deea
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 0x55df0c
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404804
ret