Function at 0x52d6a8
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff88
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x52fc62
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x38], 0xffffffff
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x52d724
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x52d71a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.00407b94
dec esi
cmp esi, 0xffffffff
jne 0x52d701
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx]
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
mov bl, 1
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x4c]
mov byte [ebp - 0x39], al
dec al
je 0x52d755
sub al, 2
je 0x52d7df
jmp 0x52d7e8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0xffffffff
jne 0x52d765
xor ebx, ebx
jmp 0x52fc47
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x38]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
call fcn.00407a38
cmp eax, dword [0x51a710]
jne 0x52d7ad
mov dl, 7
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 1
jmp 0x52fc47
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x60], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x52d7ef
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x52d7ef
xor ebx, ebx
jmp 0x52fc47
mov eax, dword [ebp - 4]
push eax
mov eax, dword [eax]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.0052d688
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x52fbd2
cmp dword [ebp - 0x48], 0
je 0x52d81e
mov eax, dword [ebp - 4]
call dword [ebp - 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52d83b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx esi, byte [edx + eax]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
cmp esi, 0xe
jg 0x52d8a4
je 0x52f46a
cmp esi, 0xd
ja case.default.0x52d8bb
jmp dword [esi*4 + 0x52d86c]
cmp esi, 0x15
jg 0x52d8da
je 0x52e9cf
add esi, 0xfffffff1
cmp esi, 5
ja case.default.0x52d8bb
jmp dword [esi*4 + 0x52d8c2]
cmp esi, 0x19
jg 0x52d901
je 0x52e3e6
sub esi, 0x16
je 0x52f10c
dec esi
je 0x52f389
dec esi
je 0x52f2a8
jmp case.default.0x52d8bb
sub esi, 0x1a
je 0x52e43a
sub esi, 0xe5
je 0x52fbd2
jmp case.default.0x52d8bb
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52d9ec
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52d951
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52d95e
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x11]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52d9ac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52d9dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x16]
push eax
mov ecx, dword [ebp - 0x1a]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.005247d4
test al, al
jne 0x52dad5
cmp byte [ebp - 0x12], 0
je 0x52fbdf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52da40
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52da4d
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52da9b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52fbd2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52daf6
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52db03
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52db51
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52dba8
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx eax, byte [edx + eax]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52dc92
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52dbf7
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52dc04
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x11]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52dc52
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52dc83
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x16]
push eax
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x1a]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.00527e10
test al, al
jne 0x52dd7f
cmp byte [ebp - 0x12], 0
je 0x52fbdf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52dcea
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52dcf7
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52dd45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52fbd2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52dda0
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52ddad
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52ddfb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbd2
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 0x16]
call fcn.00538d58
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x11], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0xd], eax
mov byte [ebp - 9], 0
mov eax, dword [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x16]
push eax
mov ecx, dword [ebp - 0x1a]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.005247d4
test al, al
jne 0x52df44
cmp byte [ebp - 0x12], 0
je 0x52fbdf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52deaf
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52debc
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52df0a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52fbd2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52df65
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52df72
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52dfc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbd2
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52e02f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.0052d1b0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538d58
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x16]
cmp byte [eax + 0xc], 0xd
jne 0x52e078
mov eax, dword [ebp - 0x1a]
mov eax, dword [eax]
mov edx, dword [ebp - 0x28]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1a]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0x28]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [eax + 0xc], edx
jmp 0x52fbd2
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1a]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x16]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [eax + 0xc], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0xc], 0
jne 0x52e0b2
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x44]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x52e0dc
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x52e0eb
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e11b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x2c]
ja 0x52e153
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
call fcn.00407a38
cmp eax, dword [0x51a710]
jne 0x52e355
xor eax, eax
push ebp
push 0x52e1d1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
call dword [ebx + 0x14]
test al, al
jne 0x52e1c4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
jne 0x52e1b7
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.00522708
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52fbdf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538d58
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x11], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0xd], eax
mov byte [ebp - 9], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov edx, dword [ebp - 0x28]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 0x28]
mov dword [edx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e411
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e470
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e4b9
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e502
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov byte [ebp - 0x41], 1
lea edx, [ebp - 0x1a]
movzx ecx, byte [ebp - 0x41]
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x52e544.0
jmp dword [eax*4 + 0x52e54b]
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
setne byte [ebp - 0x41]
jmp 0x52e5d5
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
setne byte [ebp - 0x41]
jmp 0x52e5d5
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
setne byte [ebp - 0x41]
jmp 0x52e5d5
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
setne byte [ebp - 0x41]
jmp 0x52e5d5
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
setne byte [ebp - 0x41]
jmp 0x52e5d5
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
setne byte [ebp - 0x41]
jmp 0x52e5d5
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00522708
cmp byte [ebp - 0x12], 0
je 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
jmp 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52e5e6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
cmp byte [ebp - 0x41], 0
je 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e61e
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov byte [ebp - 0x41], 1
lea edx, [ebp - 0x1a]
movzx ecx, byte [ebp - 0x41]
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x52e660.0
jmp dword [eax*4 + 0x52e667]
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
sete byte [ebp - 0x41]
jmp 0x52e6f1
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
sete byte [ebp - 0x41]
jmp 0x52e6f1
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
sete byte [ebp - 0x41]
jmp 0x52e6f1
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
sete byte [ebp - 0x41]
jmp 0x52e6f1
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
sete byte [ebp - 0x41]
jmp 0x52e6f1
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
sete byte [ebp - 0x41]
jmp 0x52e6f1
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00522708
cmp byte [ebp - 0x12], 0
je 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
jmp 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52e702
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
cmp byte [ebp - 0x41], 0
je 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
dec eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jbe 0x52e826
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
jmp 0x52e802
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 0xc]
jbe 0x52e787
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebx + 0xc]
sub edx, eax
ja 0x52e787
dec edx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
inc dword [ebp - 0x4c]
jne 0x52e777
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
cmp dword [ebx + 0x10], 0xffffffff
je 0x52e7af
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xffffffff
mov dword [ebp - 0x30], 1
jmp 0x52e826
cmp dword [ebx + 0x18], 0xffffffff
je 0x52e7ce
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x18], 0xffffffff
mov dword [ebp - 0x30], 1
jmp 0x52e826
mov eax, ebx
call fcn.00407b94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00519fe0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x52e826
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
je 0x52e754
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
jbe 0x52e826
cmp dword [ebx + 8], 0xffffffff
jne 0x52e754
cmp dword [ebp - 0x30], 0
jne 0x52fbd2
mov dword [ebp - 0x38], 0xffffffff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x60], 0xffffffff
jne 0x52e84f
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x60]
inc edx
sub edx, eax
jg 0x52e878
dec edx
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
inc dword [ebp - 0x50]
jne 0x52e868
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x44]
cmp eax, dword [edx + 0xc]
jb 0x52e898
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x44]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
mov eax, dword [ebp - 4]
cmp dword [eax + 0x50], 0
jne 0x52e8f4
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52e937
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x2c]
jae 0x52e96f
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x2c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538d58
jmp 0x52fbd2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52e9b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.0052cba0
test al, al
je 0x52fbdf
jmp 0x52fbd2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52e9f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.0052d550
test al, al
je 0x52fbdf
jmp 0x52fbd2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52ea36
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.0052ca14
test al, al
je 0x52fbdf
jmp 0x52fbd2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52ea98
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
cmp byte [ebp - 9], 0
je 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx eax, byte [edx + eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x52eac1.0
jmp dword [eax*4 + 0x52eac8]
mov eax, dword [ebp - 0x11]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x52eb70
mov eax, dword [ebp - 0x11]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x52eb70
mov eax, dword [ebp - 0x11]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x52eb70
mov eax, dword [ebp - 0x11]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x52eb70
mov eax, dword [ebp - 0x11]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x52eb70
mov eax, dword [ebp - 0x11]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x52eb70
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00522708
cmp byte [ebp - 9], 0
je 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
jmp 0x52fbdf
cmp dword [ebp - 0x2c], 0
je 0x52eb85
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x10]
xor al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
cmp byte [ebp - 9], 0
je 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52ebbf
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10], 0
je 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x52fbd2
mov dl, 1
mov eax, dword [0x51e540]
call fcn.00407b64
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
lea edx, [ebx + 0x10]
mov eax, dword [ebp - 4]
call fcn.0052cd4c
test al, al
jne 0x52ec46
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, ebx
call fcn.00407b94
jmp 0x52fbdf
lea edx, [ebx + 0x14]
mov eax, dword [ebp - 4]
call fcn.0052cd4c
test al, al
jne 0x52ec6b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, ebx
call fcn.00407b94
jmp 0x52fbdf
lea edx, [ebx + 0x18]
mov eax, dword [ebp - 4]
call fcn.0052cd4c
test al, al
jne 0x52ec90
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, ebx
call fcn.00407b94
jmp 0x52fbdf
lea edx, [ebx + 0x1c]
mov eax, dword [ebp - 4]
call fcn.0052cd4c
test al, al
jne 0x52ecb5
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, ebx
call fcn.00407b94
jmp 0x52fbdf
cmp dword [ebx + 0x10], 0xffffffff
je 0x52ecc4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x10], eax
cmp dword [ebx + 0x14], 0xffffffff
je 0x52ecd3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x14], eax
cmp dword [ebx + 0x18], 0xffffffff
je 0x52ece2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x18], eax
cmp dword [ebx + 0x1c], 0xffffffff
je 0x52ecf1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x1c], eax
cmp dword [ebx + 0x10], 0xffffffff
je 0x52ed02
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x52ed35
cmp dword [ebx + 0x14], 0xffffffff
je 0x52ed13
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x52ed35
cmp dword [ebx + 0x18], 0xffffffff
je 0x52ed24
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x52ed35
cmp dword [ebx + 0x1c], 0xffffffff
je 0x52ed4b
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52ed4b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, ebx
call fcn.00407b94
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, ebx
call fcn.00519f98
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52ed7a
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx eax, byte [edx + eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
jb 0x52ee54
je 0x52ef36
dec eax
je 0x52edb4
dec eax
je 0x52f060
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jne 0x52edcf
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x52edf8
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov dword [ebx + 0x14], 0xffffffff
cmp dword [ebx + 0x18], 0xffffffff
je 0x52ee1a
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x18], 0xffffffff
jmp 0x52fbd2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.00407b94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00519fe0
cmp dword [ebp - 0x38], 0xffffffff
je 0x52ee46
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x52ee7d
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
cmp dword [ebx + 0x10], 0xffffffff
je 0x52ee98
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xffffffff
jmp 0x52fbd2
cmp dword [ebx + 0x18], 0xffffffff
je 0x52eeb3
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
jmp 0x52fbd2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.00407b94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00519fe0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x52ef14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x52fbd2
cmp dword [ebp - 0x38], 0xffffffff
je 0x52ef28
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x52ef5f
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x52efbc
cmp dword [ebx + 0x14], 0xffffffff
je 0x52efbc
cmp dword [ebx + 0x14], 0xfffffffe
je 0x52efbc
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xfffffffe
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x7c]
mov byte [ebx + 0x20], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov dword [ebx + 0x24], eax
lea eax, [ebx + 0x28]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x80]
call fcn.00409cbc
mov eax, dword [ebp - 4]
mov byte [eax + 0x7c], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
jmp 0x52fbd2
cmp dword [ebx + 0x18], 0xffffffff
je 0x52efd7
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x18], 0xffffffff
jmp 0x52fbd2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.00407b94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00519fe0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x52f03e
cmp dword [ebp - 0x2c], 0xffffffff
je 0x52f03e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x52fbd2
cmp dword [ebp - 0x38], 0xffffffff
je 0x52f052
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x52f089
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.00407b94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00519fe0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x52f0ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x52fbd2
cmp dword [ebp - 0x38], 0xffffffff
je 0x52f0fe
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
lea edx, [ebp - 0x11]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52f141
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0xd]
cmp byte [eax + 0xc], 0xd
je 0x52f159
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x1a]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 0x11]
add eax, 8
cmp dword [eax], 0
je 0x52f18b
mov eax, dword [ebp - 0x11]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x11]
mov eax, dword [eax]
call fcn.005207c8
mov eax, dword [ebp - 0x16]
cmp byte [eax + 0xc], 0xd
jne 0x52f230
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
je 0x52f213
mov eax, dword [ebp - 0x1a]
add eax, 4
mov eax, dword [eax]
call fcn.005207ac
mov edx, dword [ebp - 0x11]
mov dword [edx], eax
mov eax, dword [ebp - 0x1a]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0x11]
add edx, 4
mov dword [edx], eax
mov eax, dword [ebp - 0x11]
add eax, 8
mov dword [eax], 1
mov eax, dword [ebp - 0x11]
add eax, 4
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x1a]
mov edx, dword [eax]
mov eax, dword [ebp - 0x11]
mov eax, dword [eax]
mov ecx, 1
call fcn.00524064
test al, al
jne 0x52f28e
cmp byte [ebp - 0x12], 0
je 0x52f204
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0x11]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x11]
add eax, 4
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x11]
add eax, 8
xor edx, edx
mov dword [eax], edx
jmp 0x52f28e
mov eax, dword [ebp - 0x16]
call fcn.005207ac
mov edx, dword [ebp - 0x11]
mov dword [edx], eax
mov eax, dword [ebp - 0x11]
add eax, 4
mov edx, dword [ebp - 0x16]
mov dword [eax], edx
mov eax, dword [ebp - 0x11]
add eax, 8
mov dword [eax], 0xffffffff
mov eax, dword [ebp - 0x16]
push eax
mov eax, dword [ebp - 0x11]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x1a]
call fcn.00524064
test al, al
jne 0x52f28e
cmp byte [ebp - 0x12], 0
je 0x52f27f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
jmp 0x52fbd2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52f2dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
cmp eax, 0x11
ja case.0x52f2f4.0
movzx eax, byte [eax + 0x52f2fb]
jmp dword [eax*4 + 0x52f30d]
mov eax, dword [ebp - 0x11]
dec byte [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
dec byte [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
dec word [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
dec word [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
dec dword [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
dec dword [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
sub dword [eax], 1
sbb dword [eax + 4], 0
jmp 0x52fbd2
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52f3be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
cmp eax, 0x11
ja case.0x52f3d5.0
movzx eax, byte [eax + 0x52f3dc]
jmp dword [eax*4 + 0x52f3ee]
mov eax, dword [ebp - 0x11]
inc byte [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
inc byte [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
inc word [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
inc word [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
inc dword [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
inc dword [eax]
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
add dword [eax], 1
adc dword [eax + 4], 0
jmp 0x52fbd2
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x11]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 9], 0
je 0x52f49f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0xd]
cmp byte [eax + 0xc], 0xd
je 0x52f4b7
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x1a]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 0x12], 0
je 0x52f4ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0x16]
cmp byte [eax + 0xc], 0xd
jne 0x52f514
mov eax, dword [ebp - 0x1a]
mov eax, dword [eax]
mov edx, dword [ebp - 0x11]
mov dword [edx], eax
mov eax, dword [ebp - 0x1a]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0x11]
add edx, 4
mov dword [edx], eax
jmp 0x52fbd2
mov eax, dword [ebp - 0x11]
mov edx, dword [ebp - 0x1a]
mov dword [eax], edx
mov eax, dword [ebp - 0x11]
add eax, 4
mov edx, dword [ebp - 0x16]
mov dword [eax], edx
jmp 0x52fbd2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
mov eax, dword [ebp - 0xd]
cmp byte [eax + 0xc], 0x15
je 0x52f56a
cmp byte [ebp - 9], 0
je 0x52f55b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 0x11]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
cmp byte [ebp - 9], 0
je 0x52f583
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00538cac
cmp dword [ebp - 0x2c], 0
jne 0x52f5bd
mov eax, dword [ebp - 0x11]
add eax, 8
cmp dword [eax], 0
je 0x52f5bd
mov eax, dword [ebp - 0x11]
add eax, 8
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x11]
add eax, 4
mov ecx, dword [eax]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.005372ac
test al, al
je 0x52fbdf
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x2c]
jbe 0x52f5d6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
cmp eax, dword [ebp - 0x2c]
jne 0x52f5e5
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
call fcn.00407a38
cmp eax, dword [0x51a710]
jne 0x52f7e7
xor eax, eax
push ebp
push 0x52f663
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
call dword [ebx + 0x14]
test al, al
jne 0x52f656
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
jne 0x52f649
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.00522708
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52fbdf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538d58
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov edx, dword [ebp - 0x28]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 0x28]
mov dword [edx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x52f880
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx eax, byte [edx + eax]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
lea edx, [ebp - 0x23]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
cmp byte [ebp - 0x1b], 0
je 0x52f96a
mov eax, dword [ebp - 0x1f]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52f8cf
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52f8dc
mov edx, dword [ebp - 0x1f]
mov eax, dword [ebp - 0x23]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52f92a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52f95b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00522708
jmp 0x52fbdf
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
je 0x52fbdf
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0052bf34
test al, al
jne 0x52fa4a
cmp byte [ebp - 0x12], 0
je 0x52fbdf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52f9b5
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52f9c2
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52fa10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbdf
mov eax, dword [ebp - 0x23]
push eax
mov eax, dword [ebp - 0x16]
push eax
mov eax, dword [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x1f]
push eax
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x11]
mov edx, dword [ebp - 0x1a]
mov eax, dword [ebp - 4]
call fcn.005257ac
cmp byte [ebp - 9], 0
je 0x52fb19
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52fa8d
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52fa9a
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x11]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52fae8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fb19
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
cmp byte [ebp - 0x12], 0
je 0x52fbd2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x52fb3a
and eax, 0x7f
bt dword [0x52fc74], eax
jae 0x52fb47
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.00520520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x52fb95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00519f34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x52fbd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005389c8
jmp 0x52fbd2
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.00522708
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x52d812
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x52fbf8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x52d806
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x52fc3d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x52fc21
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00538cac
dec esi
cmp esi, 0xffffffff
jne 0x52fc10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005389f4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x11], 0
je 0x52fc3d
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
sete bl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52fc69
lea eax, [ebp - 0x78]
mov edx, 0xa
call fcn.004098d0
ret