Function at 0x4c4374
Capabilities:
Access peb ldr_data
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
xor edx, edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4c50a6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x9c], 0
setne byte [ebp - 0x14]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 8]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
cdq
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x88]
adc edx, dword [ecx + 0x8c]
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x20]
mov dword [eax + 0x28], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
cdq
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x88]
adc edx, dword [ecx + 0x8c]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [ebp - 4]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jle 0x4c444b
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x4c507e
mov eax, dword [ebp - 4]
cmp dword [eax + 0x50], 0
jne 0x4c4469
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x64]
mov al, byte [edx + eax - 1]
mov byte [ebp - 0x13], al
jmp 0x4c4482
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 4]
call fcn.004c5878
mov eax, dword [ebp - 4]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c], edx
jmp 0x4c4519
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
cmp byte [ebp - 0x13], 0xd
je 0x4c44b8
cmp byte [ebp - 0x13], 0xa
jne 0x4c4502
cmp byte [ebp - 0x13], 0xd
jne 0x4c44ea
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [ebp - 4]
call fcn.004c5808
cmp al, 0xa
jne 0x4c44ea
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
inc eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 4]
test al, al
jne 0x4c4499
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18], 0
jne 0x4c454a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4c], 0
je 0x4c454a
mov dword [ebp - 8], 0xffffff95
jmp 0x4c507e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jle 0x4c4562
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x4c507e
mov eax, dword [ebp - 4]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c], edx
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x28]
test al, al
je 0x4c45e7
mov byte [ebp - 0x11], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
jmp 0x4c45b3
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c45cd
cmp byte [ebp - 0x13], 0xd
je 0x4c45cd
cmp byte [ebp - 0x13], 0xa
jne 0x4c459c
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
push ebp
call fcn.004c42e4
pop ecx
test al, al
je 0x4c4705
mov byte [ebp - 0x11], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c4705
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
jmp 0x4c46d9
cmp byte [ebp - 0x13], 0xd
je 0x4c4629
cmp byte [ebp - 0x13], 0xa
jne 0x4c466a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jge 0x4c4650
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [ebp - 4]
call fcn.004c5808
cmp al, 0xa
jne 0x4c4650
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
inc eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x30], eax
jmp 0x4c46c2
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xac]
call fcn.00404680
mov dword [ebp - 0x10], eax
jmp 0x4c4685
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jge 0x4c46af
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xac]
mov ecx, dword [ebp - 0xc]
cmp al, byte [edx + ecx]
je 0x4c4682
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jne 0x4c46c2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
add dword [eax + 0x7c], edx
jmp 0x4c46eb
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jle 0x4c461d
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x19]
xor al, 1
and al, byte [ebp - 0x11]
je 0x4c471e
mov dword [ebp - 8], 0xffffff94
jmp 0x4c507e
cmp byte [ebp - 0x11], 0
jne 0x4c442f
mov eax, dword [ebp - 4]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c], edx
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
je 0x4c4c5d
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x14]
test al, al
je 0x4c4807
mov dword [ebp - 8], 0xffffff96
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c4789
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
mov dl, byte [ebp - 0x12]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x44]
jle 0x4c47ce
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c507e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c47fc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
jmp 0x4c507e
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x24]
test al, al
je 0x4c48af
mov dword [ebp - 8], 0xffffff99
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
mov dl, byte [ebp - 0x12]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x44]
jle 0x4c487f
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c507e
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
jmp 0x4c507e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x75], 0
je 0x4c4aee
cmp byte [ebp - 0x13], 0x24
jne 0x4c4aee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jge 0x4c4aee
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [ebp - 4]
call fcn.004c5808
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x4c4aee
mov dword [ebp - 8], 0xffffff96
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c491c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
mov dl, 0x24
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59e0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c4987
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x44]
jle 0x4c4987
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c507e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c49b5
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
mov dl, 0x24
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x44]
jle 0x4c49f9
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c4a85
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
mov dl, 0x24
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x44]
jle 0x4c4a85
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004047cc
je 0x4c4aa4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jle 0x4c49bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c507e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c4ad4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
jmp 0x4c4ae3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
sub eax, dword [ebp - 0x34]
mov edx, dword [ebp - 4]
sub dword [edx + 0x4c], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
jmp 0x4c507e
mov dword [ebp - 8], 0xffffff9a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x48], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 4]
call fcn.004c4170
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x4c4bb7
lea ecx, [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
mov edx, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
add eax, 0xa4
call fcn.00404414
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 8], eax
jmp 0x4c4bbd
mov eax, dword [ebp - 4]
dec dword [eax + 0x4c]
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
jne 0x4c4b23
cmp dword [ebp - 8], 0xffffff9a
jne 0x4c4c26
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x48], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x4c], edx
cmp byte [ebp - 0x14], 0
je 0x4c4c4f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9c]
call fcn.00404680
dec eax
jne 0x4c4c4f
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x9c]
cmp al, byte [edx]
sete al
mov edx, dword [ebp - 4]
mov byte [edx + 0xa0], al
jmp 0x4c4c4f
cmp byte [ebp - 0x14], 0
je 0x4c4c4f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xa4]
call fcn.004047cc
sete al
mov edx, dword [ebp - 4]
mov byte [edx + 0xa0], al
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x7c], edx
jmp 0x4c507e
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x4c4c76
cmp byte [ebp - 0x13], 0x5f
jne 0x4c4eab
mov dword [ebp - 8], 0xffffff99
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x14], 0
je 0x4c4cea
cmp byte [ebp - 0x13], 0x61
jb 0x4c4ca5
cmp byte [ebp - 0x13], 0x7a
ja 0x4c4ca5
sub byte [ebp - 0x13], 0x20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9c]
call fcn.00404680
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x7c]
mov ecx, dword [ebp - 4]
sub edx, dword [ecx + 0x44]
inc edx
cmp eax, edx
jl 0x4c4ce1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x44]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x9c]
mov al, byte [edx + eax]
cmp al, byte [ebp - 0x13]
je 0x4c4ce5
xor eax, eax
jmp 0x4c4ce7
mov al, 1
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0xc]
test al, al
jne 0x4c4c8f
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x4c4c8f
cmp byte [ebp - 0x13], 0x5f
je 0x4c4c8f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x74], 0
je 0x4c4e80
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x44]
dec eax
jne 0x4c4e80
cmp byte [ebp - 0x25], 0x71
je 0x4c4d61
cmp byte [ebp - 0x25], 0x51
jne 0x4c4e80
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x14]
test al, al
je 0x4c4e80
mov dword [ebp - 8], 0xffffff96
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c4e1e
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x25], al
mov al, byte [ebp - 0x25]
sub al, 0x28
je 0x4c4dd1
sub al, 0x14
je 0x4c4dcb
sub al, 0x1f
je 0x4c4dbf
sub al, 0x20
je 0x4c4dc5
jmp 0x4c4dd5
mov byte [ebp - 0x25], 0x5d
jmp 0x4c4dd5
mov byte [ebp - 0x25], 0x7d
jmp 0x4c4dd5
mov byte [ebp - 0x25], 0x3e
jmp 0x4c4dd5
mov byte [ebp - 0x25], 0x29
mov byte [ebp - 0x26], 0
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
jmp 0x4c4e10
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
cmp byte [ebp - 0x26], 0
je 0x4c4e06
mov al, byte [ebp - 0x13]
cmp al, byte [ebp - 0x12]
je 0x4c4e1e
mov al, byte [ebp - 0x13]
cmp al, byte [ebp - 0x25]
sete byte [ebp - 0x26]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jle 0x4c4de1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
je 0x4c4e46
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
jmp 0x4c507e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x44]
cmp eax, 5
jle 0x4c507e
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
sub ecx, 5
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
add edx, 3
mov eax, dword [ebp - 4]
call fcn.004c59a8
jmp 0x4c507e
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x14]
mov byte [eax + 0xa0], dl
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
sub ecx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 4]
call fcn.004c59a8
jmp 0x4c507e
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
je 0x4c5015
mov dword [ebp - 8], 0xffffff97
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
cmp byte [ebp - 0x14], 0
je 0x4c4f26
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9c]
call fcn.00404680
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x7c]
sub edx, dword [ebp - 0x24]
inc edx
cmp eax, edx
jl 0x4c4f1d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
sub eax, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x9c]
mov al, byte [edx + eax]
cmp al, byte [ebp - 0x13]
je 0x4c4f21
xor eax, eax
jmp 0x4c4f23
mov al, 1
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x4c4ece
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x14]
mov byte [eax + 0xa0], dl
lea eax, [ebp - 0x3c]
mov dl, byte [ebp - 0x13]
call fcn.004045a8
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xb0]
call fcn.004047cc
jne 0x4c507e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
inc eax
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x78]
jg 0x4c507e
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
inc edx
mov eax, dword [ebp - 4]
call fcn.004c5808
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
je 0x4c507e
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
jmp 0x4c5004
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.004c59a8
mov eax, dword [ebp - 4]
inc dword [eax + 0x7c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov byte [ebp - 0x13], al
mov dl, byte [ebp - 0x13]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
jne 0x4c4fda
jmp 0x4c507e
push 0x4c50c0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
mov edx, eax
lea eax, [ebp - 0x44]
call fcn.004045a8
push dword [ebp - 0x44]
push 0x4c50e8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004c5808
and eax, 0xff
lea ecx, [ebp - 0x48]
mov edx, 4
call fcn.00409500
push dword [ebp - 0x48]
lea eax, [ebp - 0x40]
mov edx, 4
call fcn.00404740
mov ecx, dword [ebp - 0x40]
mov dl, 1
mov eax, dword [0x407f88]
call fcn.0040d108
call fcn.00403d5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c50ad
lea eax, [ebp - 0x48]
mov edx, 5
call fcn.004043e4
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.004043e4
ret