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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff78
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], 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 - 4], eax
xor eax, eax
push ebp
push 0x5cb035
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 0x5c8ae9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x5c8adf
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.004069c8
dec esi
cmp esi, 0xffffffff
jne 0x5c8ac6
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 0x5c8b1a
sub al, 2
je 0x5c8bad
jmp 0x5c8bb6
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0xffffffff
jne 0x5c8b2a
xor ebx, ebx
jmp 0x5cb017
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]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
cmp eax, dword [0x5b592c]
jne 0x5c8b7b
mov dl, 7
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 1
jmp 0x5cb017
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 0x5c8bbd
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x5c8bbd
xor ebx, ebx
jmp 0x5cb017
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.005c8a44
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x5cafa2
cmp dword [ebp - 0x48], 0
je 0x5c8bec
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 0x5c8c09
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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 0x5c8c72
je 0x5ca82b
cmp esi, 0xd
ja case.default.0x5c8c89
jmp dword [esi*4 + 0x5c8c3a]
cmp esi, 0x15
jg 0x5c8ca8
je 0x5c9d92
add esi, 0xfffffff1
cmp esi, 5
ja case.default.0x5c8c89
jmp dword [esi*4 + 0x5c8c90]
cmp esi, 0x19
jg 0x5c8ccf
je 0x5c97b5
sub esi, 0x16
je 0x5ca4cd
dec esi
je 0x5ca74a
dec esi
je 0x5ca669
jmp case.default.0x5c8c89
sub esi, 0x1a
je 0x5c9807
sub esi, 0xe5
je 0x5cafa2
jmp case.default.0x5c8c89
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5c8dba
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c8d1f
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c8d2c
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x11]
call fcn.005bb93c
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 0x5c8d7a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5c8dab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
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.005bfbf0
test al, al
jne 0x5c8ea3
cmp byte [ebp - 0x12], 0
je 0x5cafaf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c8e0e
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c8e1b
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5c8e69
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5cafa2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c8ec4
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c8ed1
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5c8f1f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c8f76
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5c9060
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c8fc5
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c8fd2
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x11]
call fcn.005bb93c
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 0x5c9020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5c9051
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
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.005c3230
test al, al
jne 0x5c914d
cmp byte [ebp - 0x12], 0
je 0x5cafaf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c90b8
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c90c5
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5c9113
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5cafa2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c916e
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c917b
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5c91c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafa2
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 0x16]
call fcn.005d4d54
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.005bfbf0
test al, al
jne 0x5c9312
cmp byte [ebp - 0x12], 0
je 0x5cafaf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c927d
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c928a
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5c92d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5cafa2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5c9333
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5c9340
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5c938e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafa2
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5c93fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.005c8594
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4d54
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x16]
cmp byte [eax + 0xc], 0xd
jne 0x5c9446
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 0x5cafa2
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0xc], 0
jne 0x5c9480
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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 0x5c94aa
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x5c94b9
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c94e9
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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 0x5c951f
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cmp eax, dword [0x5b592c]
jne 0x5c9724
xor eax, eax
push ebp
push 0x5c95a0
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 0x5c9593
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
jne 0x5c9586
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.005bdb20
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5cafaf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4d54
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c97e0
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c983d
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c9884
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c98cb
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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.005c7354
test al, al
je 0x5cafaf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x5c990b.0
jmp dword [eax*4 + 0x5c9912]
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
setne byte [ebp - 0x41]
jmp 0x5c999c
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
setne byte [ebp - 0x41]
jmp 0x5c999c
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
setne byte [ebp - 0x41]
jmp 0x5c999c
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
setne byte [ebp - 0x41]
jmp 0x5c999c
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
setne byte [ebp - 0x41]
jmp 0x5c999c
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
setne byte [ebp - 0x41]
jmp 0x5c999c
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.005bdb20
cmp byte [ebp - 0x12], 0
je 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
jmp 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5c99ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
cmp byte [ebp - 0x41], 0
je 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c99e5
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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.005c7354
test al, al
je 0x5cafaf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x5c9a25.0
jmp dword [eax*4 + 0x5c9a2c]
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
sete byte [ebp - 0x41]
jmp 0x5c9ab6
mov eax, dword [ebp - 0x1a]
cmp byte [eax], 0
sete byte [ebp - 0x41]
jmp 0x5c9ab6
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
sete byte [ebp - 0x41]
jmp 0x5c9ab6
mov eax, dword [ebp - 0x1a]
cmp word [eax], 0
sete byte [ebp - 0x41]
jmp 0x5c9ab6
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
sete byte [ebp - 0x41]
jmp 0x5c9ab6
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
sete byte [ebp - 0x41]
jmp 0x5c9ab6
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.005bdb20
cmp byte [ebp - 0x12], 0
je 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
jmp 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5c9ac7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
cmp byte [ebp - 0x41], 0
je 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x5cafa2
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 0x5c9beb
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 0x5c9bc7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 0xc]
jbe 0x5c9b4c
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 0x5c9b4c
dec edx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
inc dword [ebp - 0x4c]
jne 0x5c9b3c
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
cmp dword [ebx + 0x10], 0xffffffff
je 0x5c9b74
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 0x5c9beb
cmp dword [ebx + 0x18], 0xffffffff
je 0x5c9b93
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 0x5c9beb
mov eax, ebx
call fcn.004069c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.005b51fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x5c9beb
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 0x5c9b19
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
jbe 0x5c9beb
cmp dword [ebx + 8], 0xffffffff
jne 0x5c9b19
cmp dword [ebp - 0x30], 0
jne 0x5cafa2
mov dword [ebp - 0x38], 0xffffffff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x60], 0xffffffff
jne 0x5c9c14
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x5cafaf
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 0x5c9c3d
dec edx
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
inc dword [ebp - 0x50]
jne 0x5c9c2d
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 0x5c9c5d
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x5cafaf
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.005d4ca8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x50], 0
jne 0x5c9cb9
movzx eax, byte [ebp - 0x39]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x5cafaf
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c9cfc
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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 0x5c9d32
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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.005d4d54
jmp 0x5cafa2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5c9d77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.005c7f94
test al, al
je 0x5cafaf
jmp 0x5cafa2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5c9db8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.005c8934
test al, al
je 0x5cafaf
jmp 0x5cafa2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5c9df9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x11]
mov eax, dword [ebp - 4]
call fcn.005c7e34
test al, al
je 0x5cafaf
jmp 0x5cafa2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c9e5b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
cmp byte [ebp - 9], 0
je 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
jmp 0x5cafaf
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.0x5c9e84.0
jmp dword [eax*4 + 0x5c9e8b]
mov eax, dword [ebp - 0x11]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x5c9f33
mov eax, dword [ebp - 0x11]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x5c9f33
mov eax, dword [ebp - 0x11]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x5c9f33
mov eax, dword [ebp - 0x11]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x5c9f33
mov eax, dword [ebp - 0x11]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x5c9f33
mov eax, dword [ebp - 0x11]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x5c9f33
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.005bdb20
cmp byte [ebp - 9], 0
je 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
jmp 0x5cafaf
cmp dword [ebp - 0x2c], 0
je 0x5c9f48
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5c9f82
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov eax, dword [edx + 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 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
add dword [eax + 0x5c], edx
jmp 0x5cafa2
mov dl, 1
mov eax, dword [0x5b9880]
call fcn.00406998
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.005c8140
test al, al
jne 0x5ca007
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, ebx
call fcn.004069c8
jmp 0x5cafaf
lea edx, [ebx + 0x14]
mov eax, dword [ebp - 4]
call fcn.005c8140
test al, al
jne 0x5ca02c
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, ebx
call fcn.004069c8
jmp 0x5cafaf
lea edx, [ebx + 0x18]
mov eax, dword [ebp - 4]
call fcn.005c8140
test al, al
jne 0x5ca051
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, ebx
call fcn.004069c8
jmp 0x5cafaf
lea edx, [ebx + 0x1c]
mov eax, dword [ebp - 4]
call fcn.005c8140
test al, al
jne 0x5ca076
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, ebx
call fcn.004069c8
jmp 0x5cafaf
cmp dword [ebx + 0x10], 0xffffffff
je 0x5ca085
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x10], eax
cmp dword [ebx + 0x14], 0xffffffff
je 0x5ca094
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x14], eax
cmp dword [ebx + 0x18], 0xffffffff
je 0x5ca0a3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x18], eax
cmp dword [ebx + 0x1c], 0xffffffff
je 0x5ca0b2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x1c], eax
cmp dword [ebx + 0x10], 0xffffffff
je 0x5ca0c3
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x5ca0f6
cmp dword [ebx + 0x14], 0xffffffff
je 0x5ca0d4
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x5ca0f6
cmp dword [ebx + 0x18], 0xffffffff
je 0x5ca0e5
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x5ca0f6
cmp dword [ebx + 0x1c], 0xffffffff
je 0x5ca10c
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5ca10c
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, ebx
call fcn.004069c8
jmp 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, ebx
call fcn.005b51b4
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5ca13b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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 0x5ca215
je 0x5ca2f7
dec eax
je 0x5ca175
dec eax
je 0x5ca421
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jne 0x5ca190
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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 0x5ca1b9
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov dword [ebx + 0x14], 0xffffffff
cmp dword [ebx + 0x18], 0xffffffff
je 0x5ca1db
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x18], 0xffffffff
jmp 0x5cafa2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.004069c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.005b51fc
cmp dword [ebp - 0x38], 0xffffffff
je 0x5ca207
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
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 0x5ca23e
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
cmp dword [ebx + 0x10], 0xffffffff
je 0x5ca259
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xffffffff
jmp 0x5cafa2
cmp dword [ebx + 0x18], 0xffffffff
je 0x5ca274
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
jmp 0x5cafa2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.004069c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.005b51fc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x5ca2d5
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 0x5cafa2
cmp dword [ebp - 0x38], 0xffffffff
je 0x5ca2e9
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
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 0x5ca320
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x5ca37d
cmp dword [ebx + 0x14], 0xffffffff
je 0x5ca37d
cmp dword [ebx + 0x14], 0xfffffffe
je 0x5ca37d
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.00408b88
mov eax, dword [ebp - 4]
mov byte [eax + 0x7c], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
jmp 0x5cafa2
cmp dword [ebx + 0x18], 0xffffffff
je 0x5ca398
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x18], 0xffffffff
jmp 0x5cafa2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.004069c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.005b51fc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x5ca3ff
cmp dword [ebp - 0x2c], 0xffffffff
je 0x5ca3ff
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 0x5cafa2
cmp dword [ebp - 0x38], 0xffffffff
je 0x5ca413
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
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 0x5ca44a
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, ebx
call fcn.004069c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.005b51fc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x5ca4ab
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 0x5cafa2
cmp dword [ebp - 0x38], 0xffffffff
je 0x5ca4bf
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], edx
jmp 0x5cafa2
lea edx, [ebp - 0x11]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5ca502
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 0xd]
cmp byte [eax + 0xc], 0xd
je 0x5ca51a
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x1a]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
mov eax, dword [ebp - 0x11]
add eax, 8
cmp dword [eax], 0
je 0x5ca54c
mov eax, dword [ebp - 0x11]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x11]
mov eax, dword [eax]
call fcn.005bbbe4
mov eax, dword [ebp - 0x16]
cmp byte [eax + 0xc], 0xd
jne 0x5ca5f1
mov eax, dword [ebp - 0x1a]
cmp dword [eax], 0
je 0x5ca5d4
mov eax, dword [ebp - 0x1a]
add eax, 4
mov eax, dword [eax]
call fcn.005bbbc8
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.005bf480
test al, al
jne 0x5ca64f
cmp byte [ebp - 0x12], 0
je 0x5ca5c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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 0x5ca64f
mov eax, dword [ebp - 0x16]
call fcn.005bbbc8
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.005bf480
test al, al
jne 0x5ca64f
cmp byte [ebp - 0x12], 0
je 0x5ca640
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
jmp 0x5cafa2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5ca69e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
cmp eax, 0x11
ja case.0x5ca6b5.0
movzx eax, byte [eax + 0x5ca6bc]
jmp dword [eax*4 + 0x5ca6ce]
mov eax, dword [ebp - 0x11]
dec byte [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
dec byte [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
dec word [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
dec word [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
dec dword [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
dec dword [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
sub dword [eax], 1
sbb dword [eax + 4], 0
jmp 0x5cafa2
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5ca77f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
cmp eax, 0x11
ja case.0x5ca796.0
movzx eax, byte [eax + 0x5ca79d]
jmp dword [eax*4 + 0x5ca7af]
mov eax, dword [ebp - 0x11]
inc byte [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
inc byte [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
inc word [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
inc word [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
inc dword [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
inc dword [eax]
jmp 0x5cafa2
mov eax, dword [ebp - 0x11]
add dword [eax], 1
adc dword [eax + 4], 0
jmp 0x5cafa2
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x11]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 9], 0
je 0x5ca860
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 0xd]
cmp byte [eax + 0xc], 0xd
je 0x5ca878
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x1a]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 0x12], 0
je 0x5ca8ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 0x16]
cmp byte [eax + 0xc], 0xd
jne 0x5ca8d5
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 0x5cafa2
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 0x5cafa2
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
mov eax, dword [ebp - 0xd]
cmp byte [eax + 0xc], 0x15
je 0x5ca92b
cmp byte [ebp - 9], 0
je 0x5ca91c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
mov eax, dword [ebp - 0x11]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
cmp byte [ebp - 9], 0
je 0x5ca944
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d4ca8
cmp dword [ebp - 0x2c], 0
jne 0x5ca97e
mov eax, dword [ebp - 0x11]
add eax, 8
cmp dword [eax], 0
je 0x5ca97e
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.005d32ac
test al, al
je 0x5cafaf
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x2c]
jbe 0x5ca997
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
cmp eax, dword [ebp - 0x2c]
jne 0x5ca9a6
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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]
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x5b592c]
jne 0x5cabb7
xor eax, eax
push ebp
push 0x5caa27
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 0x5caa1a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
jne 0x5caa0d
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.005bdb20
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5cafaf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5cafa2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4d54
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x5cac50
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
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.005c7354
test al, al
je 0x5cafaf
cmp byte [ebp - 0x1b], 0
je 0x5cad3a
mov eax, dword [ebp - 0x1f]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5cac9f
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5cacac
mov edx, dword [ebp - 0x1f]
mov eax, dword [ebp - 0x23]
call fcn.005bb93c
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 0x5cacfa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cad2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.005bdb20
jmp 0x5cafaf
lea edx, [ebp - 0x1a]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
je 0x5cafaf
lea edx, [ebp - 0x11]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.005c7354
test al, al
jne 0x5cae1a
cmp byte [ebp - 0x12], 0
je 0x5cafaf
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5cad85
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5cad92
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5cade0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafaf
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.005c0bcc
cmp byte [ebp - 9], 0
je 0x5caee9
mov eax, dword [ebp - 0xd]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5cae5d
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5cae6a
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x11]
call fcn.005bb93c
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 0x5caeb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5caee9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
cmp byte [ebp - 0x12], 0
je 0x5cafa2
mov eax, dword [ebp - 0x16]
movzx eax, byte [eax + 0xc]
add al, 0xf8
cmp al, 0x1f
ja 0x5caf0a
and eax, 0x7f
bt dword [0x5cb048], eax
jae 0x5caf17
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 0x1a]
call fcn.005bb93c
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 0x5caf65
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005b5150
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 0x5cafa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.005d49e4
jmp 0x5cafa2
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.005bdb20
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x5c8be0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x5cafc8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x5c8bd4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x5cb00d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x5caff1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4ca8
dec esi
cmp esi, 0xffffffff
jne 0x5cafe0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.005d4a10
mov eax, dword [ebp - 4]
cmp byte [eax + 0x11], 0
je 0x5cb00d
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 0x5cb03c
lea eax, [ebp - 0x88]
mov edx, 0xa
call fcn.0040879c
ret