Function at 0x40fbe0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x43eee8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
mov al, byte [esp + 0x30]
push ebx
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0xc]
mov byte [esp + 0xc], al
call fcn.00403320
mov edx, dword [esp + 0x38]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x10]
call fcn.00403480
mov edi, 0x44d70c
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x441700]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x30], ebx
push ecx
push edx
push 0x44d70c
lea ecx, [esp + 0x14]
call fcn.0040a430
mov edx, dword [0x441700]
cmp eax, edx
je 0x40fc96
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
sub ecx, eax
inc eax
push ecx
push eax
push edx
lea ecx, [esp + 0x14]
call fcn.0040a210
mov ecx, dword [0x441700]
mov byte [esp + 0x30], 1
push ecx
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.00403120
mov byte [esp + 0x30], bl
push 1
lea ecx, [esp + 0x1c]
jmp 0x40fcf5
mov edi, 0x44d5d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push 0x44d5d0
lea ecx, [esp + 0x14]
call fcn.0040a430
cmp eax, dword [0x441700]
je 0x40fcfa
mov edx, dword [esp + 0x10]
lea ecx, [esp + 8]
sub edx, eax
inc eax
push edx
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040a210
mov ecx, dword [0x441700]
mov byte [esp + 0x30], 2
push ecx
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.00403120
mov byte [esp + 0x30], bl
push 1
lea ecx, [esp + 0x1c]
call fcn.00403320
mov edi, 0x44d774
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x441700]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push 0x44d774
lea ecx, [esp + 0x14]
call fcn.0040a430
cmp eax, dword [0x441700]
je 0x40fd62
mov ecx, dword [esp + 0x10]
inc eax
push ecx
lea edx, [esp + 0x1c]
push eax
push edx
lea ecx, [esp + 0x14]
call fcn.0040a210
mov ecx, dword [0x441700]
mov byte [esp + 0x30], 3
push ecx
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.00403120
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x34], bl
call fcn.00403320
mov edi, 0x44d770
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x441700]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push 0x44d770
lea ecx, [esp + 0x14]
call fcn.0040a430
cmp eax, dword [0x441700]
jne 0x40fdb5
push 1
lea ecx, [esp + 0xc]
mov dword [esp + 0x34], 0xffffffff
call fcn.00403320
pop edi
xor al, al
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret
push eax
lea eax, [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.0040a210
mov ecx, dword [0x441700]
mov byte [esp + 0x30], 4
push ecx
push ebx
push eax
lea ecx, [esp + 0x14]
call fcn.00403120
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x40fe01
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x40fdf8
cmp al, 0xff
je 0x40fdf8
dec al
mov byte [ecx], al
jmp 0x40fe01
push ecx
call fcn.0043359c
add esp, 4
mov eax, dword [esp + 0xc]
cmp eax, ebx
jne 0x40fe0e
mov eax, 0x4416fc
push eax
call fcn.0042399e
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
add esp, 4
cmp eax, 1
mov dword [edx], eax
jge 0x40fe6a
cmp ecx, ebx
je 0x40fe57
mov al, byte [ecx - 1]
cmp al, bl
je 0x40fe4d
cmp al, 0xff
je 0x40fe4d
dec al
pop edi
mov byte [ecx - 1], al
xor al, al
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret
dec ecx
push ecx
call fcn.0043359c
add esp, 4
pop edi
xor al, al
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret
cmp ecx, ebx
je 0x40fe9b
mov al, byte [ecx - 1]
cmp al, bl
je 0x40fe91
cmp al, 0xff
je 0x40fe91
dec al
pop edi
mov byte [ecx - 1], al
mov al, 1
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x28]
pop edi
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x2c
ret