Function at 0x5c6af7
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xcc
mov eax, dword [ebp + 0x5c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x60]
push ebx
mov ebx, dword [eax]
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax]
mov eax, edx
shr eax, 9
and eax, 1
push esi
mov dword [ebp - 0x54], eax
xor eax, 1
push edi
mov edi, dword [ebp + 0x78]
mov dword [ebp - 0x58], eax
xor esi, esi
push 0xfffffffffffffffe
pop eax
mov dword [ebp], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x34], eax
mov eax, edx
and eax, 1
shl eax, 8
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x28], edx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp + 0x14], esi
mov dword [ebp - 0x50], esi
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x48], esi
mov dword [ebp + 8], esi
mov dword [ebp + 4], esi
mov dword [ebp - 0x40], eax
movzx eax, byte [ecx]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x7c]
cmp eax, esi
je 0x5c6beb
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp ebx, ecx
ja 0x5c8c37
cmp ebx, dword [ebp - 0xc]
jae 0x5c6b91
mov ebx, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, ebx
sub ecx, dword [ebp - 0xc]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x5c8d18
sub eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x7c]
add eax, ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x48]
cmp eax, esi
je 0x5c6be0
cmp eax, dword [ebp - 0x44]
jbe 0x5c6be3
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push dword [ebp - 0x44]
call fcn.005daa60
mov eax, dword [ebp - 0x44]
mov ecx, eax
sub ecx, dword [ebp + 0x48]
add esp, 0xc
add ebx, ecx
mov dword [ebp + 0x48], eax
jmp 0x5c6be3
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp + 0x50]
mov dword [ebp - 0xc], ebx
jmp 0x5c6bfc
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp dword [edi + 0x20], eax
ja 0x5c8c37
cmp dword [ebp + 0x14], esi
je 0x5c6c7b
cmp dword [ebp + 0x4c], esi
je 0x5c6c7b
cmp dword [ebp + 0x4c], 0x5c
jne 0x5c6c1c
lea eax, [ecx + 1]
cmp byte [eax], 0x45
jne 0x5c6c1c
mov dword [ebp + 0x14], esi
jmp 0x5c7eb9
mov eax, dword [ebp + 8]
cmp eax, esi
je 0x5c6c43
cmp dword [ebp + 0x7c], esi
jne 0x5c6c40
xor edx, edx
mov dh, byte [eax + 2]
mov dl, byte [eax + 3]
sub ecx, edx
sub ecx, dword [edi + 0x18]
mov edx, ecx
sar edx, 8
mov byte [eax + 4], dl
mov byte [eax + 5], cl
mov dword [ebp + 8], esi
test byte [ebp + 0x29], 0x40
je 0x5c7e68
mov eax, dword [ebp + 0x50]
mov byte [ebx], 0x53
mov dword [ebp + 8], ebx
inc ebx
or byte [ebx], 0xff
mov ecx, eax
sub ecx, dword [edi + 0x18]
inc ebx
sar ecx, 8
mov byte [ebx], cl
sub al, byte [edi + 0x18]
and byte [ebx + 2], 0
and byte [ebx + 3], 0
mov byte [ebx + 1], al
add ebx, 4
jmp 0x5c7e68
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2a
je 0x5c6cfa
cmp eax, 0x2b
je 0x5c6cfa
cmp eax, 0x3f
je 0x5c6cfa
cmp eax, 0x7b
jne 0x5c6c9f
mov eax, dword [ebp + 0x50]
inc eax
call fcn.005c5cf9
test eax, eax
jne 0x5c6cfa
cmp dword [ebp + 8], esi
mov dword [ebp + 0x40], esi
je 0x5c6cd7
mov eax, dword [ebp - 0x48]
dec dword [ebp - 0x48]
test eax, eax
jg 0x5c6cd7
cmp dword [ebp + 0x7c], esi
jne 0x5c6cd4
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x50]
xor edx, edx
mov dh, byte [ecx + 2]
mov dl, byte [ecx + 3]
sub eax, edx
sub eax, dword [edi + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov dword [ebp + 8], esi
test byte [ebp + 0x28], 8
je 0x5c6d4c
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x5c8c2a
cmp ecx, 0x23
jne 0x5c6d4c
mov eax, dword [ebp + 0x50]
jmp 0x5c6e19
mov dword [ebp + 0x40], 1
jmp 0x5c6cd7
mov edx, dword [edi + 0x50]
test edx, edx
je 0x5c6df3
mov ecx, dword [edi + 0x1c]
cmp eax, ecx
jae 0x5c6e19
push 0
lea esi, [edi + 0x54]
push esi
push ecx
push edx
push eax
call fcn.005c983e
add esp, 0x14
test eax, eax
mov eax, dword [ebp + 0x50]
je 0x5c6e19
mov ecx, dword [edi + 0x54]
lea eax, [eax + ecx - 1]
mov dword [ebp + 0x50], eax
cmp byte [eax], 0
jne 0x5c8c2a
and dword [ebp + 0x4c], 0
xor edx, edx
inc edx
test byte [ebp + 0x29], 0x40
je 0x5c6d84
cmp dword [ebp + 0x40], 0
jne 0x5c6d84
mov eax, dword [ebp + 0x50]
mov byte [ebx], 0x53
mov dword [ebp + 8], ebx
inc ebx
or byte [ebx], 0xff
mov ecx, eax
sub ecx, dword [edi + 0x18]
inc ebx
sar ecx, 8
mov byte [ebx], cl
sub al, byte [edi + 0x18]
and byte [ebx + 2], 0
and byte [ebx + 3], 0
mov byte [ebx + 1], al
add ebx, 4
mov eax, dword [ebp + 0x4c]
cmp eax, 0x3f
mov esi, dword [ebp + 0x50]
jg 0x5c75eb
je 0x5c75df
xor ecx, ecx
sub eax, ecx
je 0x5c7617
sub eax, 0x24
je 0x5c75d4
sub eax, 4
je 0x5c6e3d
dec eax
je 0x5c7617
dec eax
je 0x5c6e38
dec eax
je 0x5c6e2c
sub eax, 3
jne 0x5c7e68
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c6dd5
or dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp], eax
mov eax, dword [ebp + 0x28]
shr eax, 2
and al, 1
mov dword [ebp + 0x48], ebx
or al, 0xc
jmp 0x5c8b74
mov edx, dword [edi + 0x54]
mov esi, dword [edi + 0x1c]
sub esi, edx
cmp eax, esi
ja 0x5c6e19
cmp cl, byte [edi + 0x58]
jne 0x5c6e19
cmp edx, 1
je 0x5c6d35
mov cl, byte [eax + 1]
cmp cl, byte [edi + 0x59]
je 0x5c6d35
inc eax
mov dword [ebp + 0x50], eax
mov cl, byte [eax]
test cl, cl
jne 0x5c6d03
jmp 0x5c6d48
mov dword [ebp + 0x20], edx
or dword [ebp + 0x2c], 0xffffffff
jmp 0x5c768a
mov dword [ebp + 0x20], ecx
jmp 0x5c6e2f
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 0x20]
inc esi
mov dword [ebp + 4], eax
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x2a
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], 0x5f
mov dword [ebp + 0x24], ecx
jne 0x5c6f1d
mov edx, dword [edi + 0xc]
lea ecx, [esi + 1]
movzx esi, byte [ecx]
test byte [esi + edx], 2
je 0x5c6f17
and dword [ebp + 0x48], 0
mov dword [ebp + 0x40], str.ACCEPT
mov dword [ebp + 0x24], ecx
inc ecx
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [eax + edx], 2
jne 0x5c6e85
mov al, byte [ecx]
cmp al, 0x3a
je 0x5c8c45
cmp al, 0x29
jne 0x5c6f09
mov esi, ecx
sub esi, dword [ebp + 0x24]
and dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x44]
cmp esi, dword [eax*8 + 0x6048f0]
jne 0x5c6ec8
push esi
push dword [ebp + 0x40]
push dword [ebp + 0x24]
call fcn.005ddd40
add esp, 0xc
test eax, eax
je 0x5c6ee7
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
mov eax, dword [eax*8 + 0x6048f0]
inc dword [ebp + 0x44]
cmp dword [ebp + 0x44], 7
lea eax, [ecx + eax + 1]
mov dword [ebp + 0x40], eax
jl 0x5c6ea9
jmp 0x5c6eff
mov eax, dword [ebp + 0x44]
mov al, byte [eax*8 + 0x6048f4]
mov byte [ebx], al
inc ebx
cmp al, 0x6e
jne 0x5c6eff
mov dword [edi + 0x4c], 1
cmp dword [ebp + 0x44], 7
jl 0x5c8c2a
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x5c8db5
mov esi, dword [ebp + 0x50]
xor edx, edx
inc edx
cmp al, 0x3f
jne 0x5c75c2
inc esi
mov dword [ebp + 0x50], esi
mov cl, byte [esi]
movzx eax, cl
cmp eax, 0x3a
jg 0x5c732c
je 0x5c735d
cmp eax, 0x28
jg 0x5c730f
je 0x5c70b6
sub eax, 0x21
je 0x5c6fa4
dec eax
dec eax
je 0x5c6f75
sub eax, 3
je 0x5c6f66
dec eax
je 0x5c7465
jmp 0x5c7ff5
mov dword [ebp + 0x4c], 0x29
mov dword [ebp + 0x40], edx
jmp 0x5c8251
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x5c6f96
cmp al, 0x29
je 0x5c6f8d
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x5c6f7f
cmp byte [esi], 0
jne 0x5c8c2a
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x5c8db5
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x5c6fb6
mov byte [ebx], 0x6d
inc ebx
jmp 0x5c7420
mov dword [ebp + 0x44], 0x59
and dword [ebp + 0x48], 0
mov ecx, dword [ebp + 0x44]
mov byte [ebx], cl
mov eax, dword [edi + 0x48]
mov dword [ebp - 8], eax
xor eax, eax
cmp ecx, 0x5a
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 0x10], eax
je 0x5c6fde
cmp ecx, 0x5b
jne 0x5c6fe1
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x10]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x4c]
push ecx
push dword [ebp + 0x40]
push dword [ebp + 0x24]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x28]
and eax, 7
push eax
push dword [ebp + 0xc]
call fcn.005c8dc7
add esp, 0x34
test eax, eax
je 0x5c8db5
mov edx, dword [ebp + 0x44]
cmp edx, 0x60
jne 0x5c705d
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x5c705d
mov eax, ebx
xor ecx, ecx
mov ch, byte [eax + 1]
inc esi
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x55
jne 0x5c7037
cmp byte [ebx + 3], 0x66
jne 0x5c80e7
cmp esi, 1
jg 0x5c8cee
push 0x66
pop edx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x50]
cmp byte [ecx], 0x29
jne 0x5c8d0a
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x5c8107
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x10]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x5c8d18
lea eax, [eax + ecx - 6]
mov ecx, dword [ebp + 0x7c]
mov dword [ecx], eax
mov byte [ebx], 0x5e
inc ebx
and byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
mov byte [ebx], 0x55
inc ebx
and byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
jmp 0x5c8c2a
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x44], 0x60
jne 0x5c70de
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x5c7368
cmp al, 0x21
je 0x5c7368
cmp al, 0x3c
je 0x5c7368
or dword [ebp + 0x48], 0xffffffff
mov byte [ebx + 3], 0x64
mov edx, dword [ebp + 0x50]
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x40], 3
jne 0x5c710f
add edx, 2
cmp byte [edx], 0x26
jne 0x5c710f
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], edx
mov byte [ebx + 3], 0x65
jmp 0x5c7145
cmp cl, 0x3c
jne 0x5c7120
mov dword [ebp + 0x4c], 0x3e
mov dword [ebp + 0x50], eax
jmp 0x5c7145
cmp cl, 0x27
jne 0x5c712e
mov dword [ebp + 0x4c], 0x27
jmp 0x5c711b
and dword [ebp + 0x4c], 0
cmp cl, 0x2d
je 0x5c713c
cmp cl, 0x2b
jne 0x5c7145
mov dword [ebp + 0x50], eax
movzx eax, byte [eax]
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x50]
mov ecx, dword [edi + 0xc]
inc eax
movzx edx, byte [eax]
test byte [edx + ecx], 0x10
je 0x5c8c53
mov esi, eax
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [ecx + eax], 0x10
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x3c], esi
je 0x5c7198
test edx, edx
jl 0x5c7188
test byte [eax + 0x605370], 4
je 0x5c7185
lea edx, [edx + edx*4]
lea edx, [eax + edx*2 - 0x30]
jmp 0x5c7188
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
jne 0x5c716f
mov dword [ebp + 0x38], edx
mov eax, esi
sub eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x4c], 0
mov dword [ebp + 0x30], eax
jle 0x5c71b6
movzx eax, byte [esi]
inc esi
cmp eax, dword [ebp + 0x4c]
mov dword [ebp + 0x50], esi
jne 0x5c8c64
mov al, byte [esi]
inc esi
cmp al, 0x29
mov dword [ebp + 0x50], esi
jne 0x5c8c64
cmp dword [ebp + 0x7c], 0
jne 0x5c7368
cmp dword [ebp + 0x48], 0
jle 0x5c7210
test edx, edx
jle 0x5c8d34
cmp dword [ebp + 0x48], 0x2d
jne 0x5c71ec
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
mov edx, eax
jmp 0x5c71ef
add edx, dword [edi + 0x30]
test edx, edx
jle 0x5c81db
cmp edx, dword [edi + 0x34]
jg 0x5c81db
mov eax, edx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], dl
jmp 0x5c7368
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x5c7241
push dword [ebp + 0x30]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x3c]
call fcn.005ddd40
add esp, 0xc
test eax, eax
je 0x5c7241
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jl 0x5c721d
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jge 0x5c725f
movzx eax, byte [esi + 1]
mov ah, byte [esi]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x5c7368
mov eax, dword [ebp + 0x28]
shr eax, 3
xor esi, esi
inc esi
and eax, esi
push eax
push dword [ebp + 0x30]
mov eax, dword [ebp + 0x50]
push dword [ebp + 0x3c]
push edi
call fcn.005c5df0
add esp, 0x10
test eax, eax
jg 0x5c724f
xor eax, eax
cmp dword [ebp + 0x4c], eax
jne 0x5c81db
mov edx, dword [ebp + 0x3c]
cmp byte [edx], 0x52
jne 0x5c72c6
cmp dword [ebp + 0x30], esi
jle 0x5c72bb
movzx ecx, byte [esi + edx]
test byte [ecx + 0x605370], 4
je 0x5c81db
inc esi
cmp esi, dword [ebp + 0x30]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jl 0x5c7299
test eax, eax
jne 0x5c72c0
mov eax, 0xffff
mov byte [ebx + 3], 0x65
jmp 0x5c724f
cmp dword [ebp + 0x30], 6
jne 0x5c72eb
push 6
push 0x605480
push dword [ebp + 0x3c]
call fcn.005ddd40
add esp, 0xc
test eax, eax
jne 0x5c72eb
mov byte [ebx + 3], 0x66
mov dword [ebp + 0x40], esi
jmp 0x5c7368
mov eax, dword [ebp + 0x38]
test eax, eax
jle 0x5c72fb
cmp eax, dword [edi + 0x34]
jle 0x5c724f
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov ecx, dword [ebp + 0x68]
mov dword [ecx], eax
jmp 0x5c8db5
cmp eax, 0x2b
je 0x5c7374
cmp eax, 0x2d
je 0x5c7374
cmp eax, 0x2f
jle 0x5c7ff5
cmp eax, 0x39
jle 0x5c7374
jmp 0x5c7ff5
sub eax, 0x3c
je 0x5c7442
dec eax
je 0x5c7435
dec eax
je 0x5c7429
sub eax, 5
je 0x5c73be
sub eax, 0xd
je 0x5c7380
dec eax
dec eax
je 0x5c7370
sub eax, 0x2a
jne 0x5c7ff5
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x44], 0x5e
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x48], ebx
jmp 0x5c6fc1
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], 0x29
jmp 0x5c7faa
inc esi
mov dword [ebp + 0x50], esi
mov cl, byte [esi]
cmp cl, 0x3d
je 0x5c73a7
cmp cl, 0x3e
je 0x5c73a7
cmp cl, 0x3c
je 0x5c7465
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x5c8db5
xor eax, eax
cmp cl, 0x3e
sete al
mov dword [ebp + 0x4c], 0x29
mov dword [ebp + 0x40], eax
jmp 0x5c8251
mov byte [ebx], 0x53
mov dword [ebp + 8], ebx
mov dword [ebp - 0x48], edx
mov edx, dword [ebp + 0x50]
inc ebx
xor ecx, ecx
jmp 0x5c73d6
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
inc edx
mov dword [ebp + 0x50], edx
movzx eax, byte [edx]
test byte [eax + 0x605370], 4
jne 0x5c73cf
cmp byte [edx], 0x29
jne 0x5c8c76
cmp ecx, 0xff
jg 0x5c8c84
mov byte [ebx], cl
mov eax, dword [ebp + 0x50]
sub eax, dword [edi + 0x18]
inc ebx
inc eax
sar eax, 8
mov byte [ebx], al
mov al, byte [ebp + 0x50]
sub al, byte [edi + 0x18]
and byte [ebx + 2], 0
and byte [ebx + 3], 0
inc al
mov byte [ebx + 1], al
add ebx, 4
and dword [ebp + 0x48], 0
jmp 0x5c8c2a
mov dword [ebp + 0x44], 0x5d
jmp 0x5c7364
mov dword [ebp + 0x44], 0x58
inc esi
jmp 0x5c75ba
mov al, byte [esi + 1]
cmp al, 0x21
je 0x5c75b1
cmp al, 0x3d
je 0x5c75a8
mov edx, dword [edi + 0xc]
movzx eax, al
test byte [eax + edx], 0x10
je 0x5c8ca0
mov edx, dword [edi + 0xc]
xor eax, eax
cmp cl, 0x3c
setne al
dec eax
and eax, 0x17
add eax, 0x27
inc esi
mov dword [ebp + 0x50], esi
mov ecx, eax
movzx eax, byte [esi]
test byte [eax + edx], 0x10
mov dword [ebp + 0x3c], esi
je 0x5c7498
mov eax, edx
inc esi
mov dword [ebp + 0x50], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x5c748b
mov eax, esi
sub eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x30], eax
je 0x5c74e4
movzx edx, byte [esi]
cmp edx, ecx
jne 0x5c8d4a
cmp dword [edi + 0x28], 0x2710
jge 0x5c8c92
lea ecx, [eax + 3]
cmp ecx, dword [edi + 0x2c]
jle 0x5c7583
cmp eax, 0x20
mov dword [edi + 0x2c], ecx
jle 0x5c7583
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x5c8db5
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x5c7555
push dword [ebp + 0x30]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x3c]
call fcn.005e00e0
add esp, 0xc
test eax, eax
jne 0x5c752a
mov eax, dword [ebp + 0x30]
cmp byte [esi + eax + 2], 0
jne 0x5c7525
test byte [ebp + 0x2a], 8
jne 0x5c752c
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x5c8db5
or eax, 0xffffffff
test eax, eax
jl 0x5c753c
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jl 0x5c74f1
jmp 0x5c7555
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
sub ecx, dword [ebp + 0x48]
imul ecx, eax
push ecx
add eax, esi
push esi
push eax
call fcn.005daa60
add esp, 0xc
mov eax, dword [edi + 0x30]
push dword [ebp + 0x30]
inc eax
push dword [ebp + 0x3c]
sar eax, 8
mov byte [esi], al
mov al, byte [edi + 0x30]
inc al
mov byte [esi + 1], al
lea eax, [esi + 2]
push eax
call fcn.005dfb80
mov eax, dword [ebp + 0x30]
add esp, 0xc
and byte [esi + eax + 2], 0
mov esi, dword [ebp + 0x50]
inc esi
inc dword [edi + 0x28]
mov dword [ebp + 0x50], esi
inc dword [edi + 0x30]
mov eax, dword [edi + 0x30]
sar eax, 8
mov byte [ebx + 3], al
mov al, byte [edi + 0x30]
mov byte [ebx + 4], al
mov dword [ebp + 0x40], 2
jmp 0x5c7368
mov dword [ebp + 0x44], 0x5a
jmp 0x5c75b8
mov dword [ebp + 0x44], 0x5b
inc esi
inc esi
mov dword [ebp + 0x50], esi
jmp 0x5c6fbd
test byte [ebp + 0x29], 0x10
je 0x5c758a
mov dword [ebp + 0x44], 0x5e
jmp 0x5c7368
mov dword [ebp + 0x48], ecx
mov byte [ebx], 0x1b
jmp 0x5c8b76
and dword [ebp + 0x20], 0
mov dword [ebp + 0x2c], edx
jmp 0x5c768a
sub eax, 0x5b
je 0x5c84b6
dec eax
je 0x5c7e70
dec eax
je 0x5c7e5e
dec eax
je 0x5c7e42
sub eax, 0x1d
je 0x5c765c
dec eax
jne 0x5c7e68
xor ecx, ecx
mov eax, dword [ebp + 0x6c]
mov edi, dword [ebp + 0x34]
mov dword [eax], edi
mov eax, dword [ebp + 0x70]
mov edi, dword [ebp + 0x18]
mov dword [eax], edi
mov eax, dword [ebp + 0x60]
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], esi
mov esi, dword [ebp + 0x7c]
cmp esi, ecx
je 0x5c7655
mov eax, dword [esi]
mov ecx, ebx
sub ecx, dword [ebp - 0xc]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x5c8d18
sub eax, dword [ebp - 0xc]
add eax, ebx
mov dword [esi], eax
mov eax, edx
jmp 0x5c8dbf
cmp dword [ebp + 0x40], 0
je 0x5c7e68
mov esi, dword [ebp + 0x68]
push esi
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x50]
inc eax
call fcn.005c5d5b
add esp, 0xc
cmp dword [esi], 0
mov dword [ebp + 0x50], eax
jne 0x5c8db5
cmp dword [ebp + 0x48], 0
je 0x5c8cb2
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x5c76a7
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0x34], ecx
mov ecx, dword [ebp]
mov dword [ebp + 0x18], ecx
sub eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x40], 0
and dword [ebp + 0x30], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp + 0x1c], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x5c76de
xor eax, eax
mov dword [ebp + 0x30], 1
mov dword [ebp + 0x50], ecx
jmp 0x5c76ed
cmp al, 0x3f
jne 0x5c76ea
mov eax, dword [ebp - 0x58]
mov dword [ebp + 0x50], ecx
jmp 0x5c76ed
mov eax, dword [ebp - 0x54]
mov cl, byte [edx]
cmp cl, 0x1c
mov dword [ebp + 0x3c], eax
je 0x5c7b9b
cmp cl, 0x1d
je 0x5c7b9b
cmp cl, 0x1e
jne 0x5c7741
cmp dword [ebp + 0x30], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x40], 0xd
mov dword [ebp + 0x4c], eax
jne 0x5c7beb
cmp dword [ebp + 0x2c], 0
jge 0x5c7beb
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push 0
push dword [ebp + 0x4c]
push 0x1e
jmp 0x5c7bd2
cmp cl, 0x17
jae 0x5c777c
cmp dword [ebp + 0x30], 0
movzx eax, cl
mov dword [ebp + 0x40], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x5c7beb
cmp dword [ebp + 0x2c], 0
jge 0x5c7beb
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x4c]
jmp 0x5c7bd2
cmp cl, 0x4e
je 0x5c7b21
cmp cl, 0x4f
je 0x5c7b21
cmp cl, 0x51
je 0x5c7b21
cmp cl, 0x5e
je 0x5c77c2
cmp cl, 0x5f
je 0x5c77c2
cmp cl, 0x5d
je 0x5c77c2
cmp cl, 0x60
je 0x5c77c2
cmp cl, 0x6d
je 0x5c7e30
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x5c8db5
and dword [ebp + 0x38], 0
and dword [ebp + 0x4c], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x60
mov dword [ebp + 0x44], eax
jne 0x5c77e0
cmp byte [edx + 3], 0x66
je 0x5c8cc0
cmp dword [ebp + 0x2c], 0xffffffff
jne 0x5c77fe
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x55
jne 0x5c77e8
mov ecx, ebx
sub ecx, eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x20], 0
jne 0x5c7894
push dword [ebp + 4]
and byte [ebx], 0
cmp dword [ebp + 0x2c], 1
mov esi, dword [ebp + 0x48]
push edi
push 0
jg 0x5c7850
push 1
push esi
call fcn.005c6482
push dword [ebp + 0x44]
inc esi
push dword [ebp + 0x48]
push esi
call fcn.005daa60
add esp, 0x20
inc ebx
cmp dword [ebp + 0x2c], 0
jne 0x5c7844
mov eax, dword [ebp + 0x48]
mov byte [eax], 0x6f
jmp 0x5c7e30
mov al, byte [ebp + 0x3c]
mov ecx, dword [ebp + 0x48]
add al, 0x67
mov byte [ecx], al
jmp 0x5c7883
push 4
push esi
call fcn.005c6482
push dword [ebp + 0x44]
lea eax, [esi + 4]
push esi
push eax
call fcn.005daa60
mov al, byte [ebp + 0x3c]
add al, 0x67
mov byte [esi], al
add esp, 0x20
add ebx, 4
inc esi
mov byte [esi], 0x5e
and byte [esi + 2], 0
inc esi
and byte [esi], 0
mov dword [ebp + 0x4c], esi
inc esi
inc esi
dec dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x2c]
mov dword [ebp + 0x48], esi
mov esi, dword [ebp + 0x1c]
jmp 0x5c7965
cmp dword [ebp + 0x20], 1
jle 0x5c7958
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x5c78e5
mov eax, dword [ebp + 0x20]
dec eax
mov dword [ebp + 0xc], eax
imul eax, dword [ebp - 0x10]
fild dword [ebp + 0xc]
fimul dword [ebp - 0x10]
mov dword [ebp + 0x24], eax
fcomp qword [0x605478]
fnstsw ax
test ah, 0x41
je 0x5c8d18
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x24]
jl 0x5c8d18
mov edx, dword [ebp + 0x24]
add eax, edx
mov dword [ecx], eax
jmp 0x5c7958
cmp dword [ebp - 0x50], 0
je 0x5c78f7
cmp dword [ebp + 0x18], 0
jge 0x5c78f7
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x18], eax
cmp dword [ebp + 0x20], 1
jle 0x5c7958
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 4]
dec eax
mov dword [ebp + 0x24], eax
push dword [ebp + 0x44]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x48]
mov dword [ebp + 0x40], eax
push ebx
call fcn.005dfb80
add esp, 0xc
jmp 0x5c7942
mov ecx, dword [edi + 0x20]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
add eax, dword [ebp + 0x44]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x44]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
inc esi
inc esi
cmp esi, dword [ebp + 0x40]
jb 0x5c791e
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x44]
dec dword [ebp + 0x24]
mov dword [ebp + 4], esi
jne 0x5c7907
mov esi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
jle 0x5c7967
sub ecx, dword [ebp + 0x20]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
jl 0x5c7abf
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x5c79ba
test ecx, ecx
jle 0x5c79ba
mov eax, dword [ebp - 0x10]
add eax, 7
mov dword [ebp + 0xc], eax
imul eax, ecx
fild dword [ebp + 0xc]
fimul dword [ebp + 0x2c]
sub eax, 6
mov ecx, eax
fcomp qword [0x605478]
fnstsw ax
test ah, 0x41
je 0x5c8d18
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x5c8d18
add eax, ecx
mov dword [edx], eax
jmp 0x5c7a77
lea eax, [ecx - 1]
test eax, eax
mov dword [ebp + 0x38], eax
jl 0x5c7a77
mov al, byte [ebp + 0x3c]
add al, 0x67
mov byte [ebp - 1], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp - 1]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x38], 0
mov dword [ebp + 0x24], esi
je 0x5c7a02
mov eax, dword [ebp + 0x4c]
mov byte [ebx], 0x5e
inc ebx
mov ecx, ebx
sub ecx, eax
neg eax
sbb eax, eax
and eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [ebp + 0x4c], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x44]
push dword [ebp + 0x48]
push ebx
call fcn.005dfb80
mov eax, dword [ebp + 4]
add esp, 0xc
cmp eax, esi
jae 0x5c7a65
mov esi, dword [ebp + 0x38]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x38], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp - 0x11], cl
mov edx, dword [edi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, dword [ebp + 0x44]
add ecx, esi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp - 0x11]
mov edx, dword [edi + 0x20]
add cl, byte [ebp + 0x44]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x24]
jb 0x5c7a34
mov esi, dword [ebp + 0x24]
add ebx, dword [ebp + 0x44]
dec dword [ebp + 0x38]
mov dword [ebp + 4], esi
jns 0x5c79d0
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x4c], 0
je 0x5c7d24
mov esi, dword [ebp + 0x4c]
xor edx, edx
mov ecx, ebx
sub ecx, esi
inc ecx
mov eax, ebx
sub eax, ecx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
mov byte [ebx], 0x55
mov byte [ebx + 2], cl
sub esi, edx
mov dword [ebp + 0x24], edx
neg edx
sbb edx, edx
and esi, edx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
inc ebx
inc ebx
test esi, esi
mov byte [eax + 1], dl
mov byte [eax + 2], cl
jne 0x5c7a84
jmp 0x5c7d21
xor eax, eax
mov esi, ebx
sub esi, dword [ebp + 0x38]
mov ah, byte [esi + 1]
mov edi, esi
mov al, byte [esi + 2]
sub edi, eax
mov al, byte [ebp + 0x3c]
add al, 0x56
cmp dword [ebp + 0x7c], 0
mov byte [esi], al
jne 0x5c7d21
cmp byte [edi], 0x5d
je 0x5c7d21
mov dword [ebp + 0x40], edi
push 0
push esi
push dword [ebp + 0x40]
call fcn.005c6242
add esp, 0xc
test eax, eax
jne 0x5c7b19
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
mov dword [ebp + 0x40], eax
je 0x5c7aed
jmp 0x5c7d21
add byte [edi], 3
jmp 0x5c7d21
cmp dword [ebp + 0x2c], 0
jne 0x5c7b2e
mov ebx, edx
jmp 0x5c7e30
mov ecx, dword [ebp + 0x2c]
cmp ecx, 1
je 0x5c7b3a
or dword [edi + 0x44], 1
cmp dword [ebp + 0x20], 0
jne 0x5c7b4c
cmp ecx, 0xffffffff
jne 0x5c7b5e
add al, 0x46
jmp 0x5c7d1e
cmp dword [ebp + 0x20], 1
jne 0x5c7b6a
cmp ecx, 0xffffffff
jne 0x5c7b6a
add al, 0x48
jmp 0x5c7d1e
cmp ecx, 1
jne 0x5c7b6a
add al, 0x4a
jmp 0x5c7d1e
add al, 0x4c
mov byte [ebx], al
mov eax, dword [ebp + 0x20]
inc ebx
mov edx, eax
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
inc ebx
inc ebx
cmp ecx, 0xffffffff
jne 0x5c7b8a
and dword [ebp + 0x2c], 0
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
inc ebx
jmp 0x5c7d21
cmp dword [ebp + 0x20], 1
movzx edx, byte [ebx - 1]
mov dword [ebp + 0x4c], edx
jle 0x5c7bb3
mov eax, dword [edi + 0x48]
or eax, edx
or eax, dword [ebp - 0x40]
mov dword [ebp + 0x18], eax
cmp dword [ebp + 0x30], 0
jne 0x5c7beb
cmp dword [ebp + 0x2c], 0
jge 0x5c7beb
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push 0
push dword [ebp + 0x4c]
movzx eax, cl
push eax
mov esi, edi
call fcn.005c6554
add esp, 0x18
test eax, eax
je 0x5c7beb
and dword [ebp + 0x3c], 0
mov dword [ebp + 0x30], 1
mov eax, dword [ebp + 0x48]
mov cl, byte [eax]
cmp cl, 0x10
je 0x5c7c04
cmp cl, 0xf
je 0x5c7c04
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x44], 0xffffffff
jmp 0x5c7c12
movzx ecx, byte [eax + 1]
mov dword [ebp + 0x44], ecx
movzx ecx, byte [eax + 2]
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x2c], 0
mov esi, ebx
mov ebx, eax
je 0x5c7e30
mov edx, dword [ebp + 0x2c]
cmp edx, 1
je 0x5c7c2c
or dword [edi + 0x44], 1
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
add eax, ecx
cmp dword [ebp + 0x20], 0
mov dword [ebp + 0x3c], eax
jne 0x5c7c61
cmp edx, 0xffffffff
jne 0x5c7c46
add al, 0x1f
jmp 0x5c7c6e
cmp edx, 1
mov ebx, dword [ebp + 0x48]
je 0x5c7d03
add al, 0x25
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x5c7d14
cmp dword [ebp + 0x20], 1
jne 0x5c7ca0
cmp edx, 0xffffffff
jne 0x5c7c79
add al, 0x21
mov ebx, dword [ebp + 0x48]
mov byte [ebx], al
inc ebx
jmp 0x5c7d1b
cmp edx, 1
mov ebx, esi
je 0x5c7e30
mov al, byte [ebp + 0x3c]
add al, 0x25
mov byte [esi], al
mov eax, dword [ebp + 0x2c]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x5c7d19
mov ebx, dword [ebp + 0x48]
add cl, 0x27
mov byte [ebx], cl
mov ecx, dword [ebp + 0x20]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x20]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x5c7cd7
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x44]
inc ebx
test ecx, ecx
jl 0x5c7cd3
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x1f
jmp 0x5c7c71
mov ecx, dword [ebp + 0x20]
cmp dword [ebp + 0x2c], ecx
je 0x5c7d1b
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x44]
inc ebx
test ecx, ecx
jl 0x5c7cf5
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [ebp + 0x20]
cmp ecx, 1
mov dword [ebp + 0x2c], ecx
jne 0x5c7d0a
add al, 0x23
jmp 0x5c7c71
add al, 0x25
mov byte [ebx], al
inc ebx
mov eax, ecx
mov byte [ebx + 1], cl
sar eax, 8
mov byte [ebx], al
inc ebx
inc ebx
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x30], 0
je 0x5c7e30
mov cl, byte [esi]
cmp cl, 0x27
je 0x5c7d3f
cmp cl, 0x41
je 0x5c7d44
cmp cl, 0x34
jne 0x5c7d67
cmp cl, 0x41
jne 0x5c7d54
mov al, byte [esi + 3]
cmp al, 0x10
je 0x5c7d4f
cmp al, 0xf
jne 0x5c7d54
push 2
pop eax
jmp 0x5c7d56
xor eax, eax
movzx ecx, cl
movzx ecx, byte [ecx + 0x6054d0]
add ecx, eax
add esi, ecx
mov dword [ebp + 0x1c], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x24], eax
jle 0x5c7e30
movzx eax, byte [esi]
cmp eax, 0x30
jg 0x5c7dc6
je 0x5c7dc1
sub eax, 0x1f
je 0x5c7dbc
push 2
pop ecx
sub eax, ecx
je 0x5c7db7
sub eax, ecx
je 0x5c7db2
sub eax, ecx
je 0x5c7dad
sub eax, 7
je 0x5c7da5
sub eax, ecx
jne 0x5c7ddc
mov byte [esi], 0x36
jmp 0x5c7e30
mov byte [esi], 0x35
jmp 0x5c7e30
mov byte [esi], 0x2b
jmp 0x5c7e30
mov byte [esi], 0x2a
jmp 0x5c7e30
mov byte [esi], 0x29
jmp 0x5c7e30
mov byte [esi], 0x28
jmp 0x5c7e30
mov byte [esi], 0x37
jmp 0x5c7e30
sub eax, 0x32
je 0x5c7e2d
sub eax, 7
je 0x5c7e28
dec eax
dec eax
je 0x5c7e23
dec eax
dec eax
je 0x5c7e1e
dec eax
dec eax
je 0x5c7e19
push dword [ebp + 0x24]
push esi
add esi, 3
push esi
call fcn.005daa60
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x24]
mov byte [eax], 0x5d
add ecx, 3
add ebx, 3
mov byte [ebx], 0x55
add esp, 0xc
inc ebx
mov byte [ebx + 1], cl
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x1c]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x1c]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x5c7e30
mov byte [esi], 0x45
jmp 0x5c7e30
mov byte [esi], 0x44
jmp 0x5c7e30
mov byte [esi], 0x43
jmp 0x5c7e30
mov byte [esi], 0x42
jmp 0x5c7e30
mov byte [esi], 0x38
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 0x78]
and dword [ebp + 0x48], 0
or dword [edi + 0x48], eax
jmp 0x5c8c2a
test byte [ebp + 0x28], 2
je 0x5c7e52
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c7e52
or dword [ebp + 0x34], 0xffffffff
and dword [ebp + 0x48], 0
mov byte [ebx], 0x1a
jmp 0x5c8b76
test byte [edi + 0x43], 2
jne 0x5c8cce
mov al, byte [ebp + 0x4c]
jmp 0x5c8b7f
mov eax, dword [ebp + 0x50]
mov esi, dword [ebp + 0x68]
push 0
push dword [ebp + 0x28]
mov dword [ebp - 0x3c], eax
push dword [edi + 0x30]
lea eax, [ebp + 0x50]
push esi
push eax
call fcn.005c59c0
add esp, 0x14
cmp dword [esi], 0
jne 0x5c8db5
test eax, eax
jge 0x5c8b7f
mov esi, eax
neg esi
cmp esi, 0x1a
jne 0x5c7ecd
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x5c7ec1
add eax, 2
cmp byte [eax], 0x45
jne 0x5c7ec1
mov dword [ebp + 0x50], eax
jmp 0x5c8c2a
mov dword [ebp + 0x14], 1
jmp 0x5c8c2a
cmp esi, 0x19
je 0x5c8c2a
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c7eea
cmp esi, 5
jle 0x5c7eea
cmp esi, 0x17
jge 0x5c7eea
or dword [ebp + 0x34], 0xffffffff
cmp esi, 0x1b
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp], ecx
jne 0x5c8205
mov edx, dword [ebp + 0x50]
mov eax, dword [edi + 0x20]
mov dword [ebp + 4], eax
inc edx
xor eax, eax
mov dword [ebp + 0x50], edx
cmp byte [edx], 0x3c
setne al
and dword [ebp + 0x40], 0
and dword [ebp + 0x24], 0
dec eax
and eax, 0x17
add eax, 0x27
mov dword [ebp + 0x4c], eax
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, 0x2b
je 0x5c7f7d
cmp cl, 0x2d
je 0x5c7f7d
mov dword [ebp + 0x44], 1
mov esi, eax
jmp 0x5c7f5d
movzx ecx, cl
cmp ecx, dword [ebp + 0x4c]
je 0x5c7f63
mov edx, dword [edi + 0xc]
mov cl, byte [ecx + edx]
test cl, 4
jne 0x5c7f57
and dword [ebp + 0x44], 0
test cl, 0x10
je 0x5c7f63
inc esi
mov cl, byte [esi]
test cl, cl
jne 0x5c7f40
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x4c]
jne 0x5c7f97
cmp dword [ebp + 0x44], 0
jne 0x5c7fa5
mov dword [ebp + 0x40], 1
jmp 0x5c824e
add edx, 2
jmp 0x5c7f83
inc edx
movzx ecx, byte [edx]
test byte [ecx + 0x605370], 4
jne 0x5c7f82
movzx ecx, byte [edx]
cmp ecx, dword [ebp + 0x4c]
je 0x5c7fa5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x39
jmp 0x5c8c2a
mov dword [ebp + 0x50], eax
mov esi, eax
mov cl, byte [esi]
movzx edx, cl
cmp edx, 0x2b
jne 0x5c7fd6
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x605370], 4
jne 0x5c8186
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3f
jmp 0x5c8db5
cmp edx, 0x2d
jne 0x5c8186
lea eax, [esi + 1]
movzx esi, byte [eax]
test byte [esi + 0x605370], 4
jne 0x5c8181
mov esi, dword [ebp + 0x50]
xor edx, edx
mov dword [ebp + 0x3c], edx
mov dword [ebp + 0x44], edx
lea eax, [ebp + 0x44]
jmp 0x5c806e
cmp cl, 0x3a
je 0x5c8073
movzx ecx, cl
inc esi
cmp ecx, 0x69
mov dword [ebp + 0x50], esi
jg 0x5c804c
je 0x5c8047
cmp ecx, 0x2d
je 0x5c8042
cmp ecx, 0x4a
je 0x5c8038
cmp ecx, 0x55
je 0x5c8032
cmp ecx, 0x58
jne 0x5c8cdc
or dword [eax], 0x40
jmp 0x5c806c
or byte [eax + 1], 2
jmp 0x5c806c
or byte [eax + 2], 8
or dword [edi + 0x44], 0x10
jmp 0x5c806c
lea eax, [ebp + 0x3c]
jmp 0x5c806c
or dword [eax], 1
jmp 0x5c806c
cmp ecx, 0x6d
je 0x5c8069
cmp ecx, 0x73
je 0x5c8064
cmp ecx, 0x78
jne 0x5c8cdc
or dword [eax], 8
jmp 0x5c806c
or dword [eax], 4
jmp 0x5c806c
or dword [eax], 2
mov cl, byte [esi]
cmp cl, 0x29
jne 0x5c8002
mov ecx, dword [ebp + 0x44]
or ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x3c]
not eax
and ecx, eax
cmp byte [esi], 0x29
mov dword [ebp + 0xc], ecx
jne 0x5c735d
mov eax, dword [edi + 0x14]
add eax, 3
cmp ebx, eax
jne 0x5c80a7
mov eax, dword [ebp + 0x7c]
cmp eax, edx
je 0x5c80a2
cmp dword [eax], 6
jne 0x5c80a7
mov dword [edi + 0x40], ecx
jmp 0x5c80d7
mov eax, ecx
xor eax, dword [ebp + 0x28]
test al, 7
je 0x5c80bb
mov byte [ebx], 0x19
mov al, cl
inc ebx
and al, 7
mov byte [ebx], al
inc ebx
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0x54], eax
xor eax, 1
mov dword [ebp - 0x58], eax
mov eax, ecx
and eax, 1
shl eax, 8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x28], ecx
mov dword [eax], ecx
mov dword [ebp + 0x48], edx
jmp 0x5c8c2a
cmp esi, 2
jg 0x5c8cfc
cmp esi, 1
jne 0x5c705d
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x4c], eax
jmp 0x5c7060
cmp edx, 0x66
mov ebx, dword [ebp + 0x1c]
je 0x5c8c2a
mov ecx, dword [ebp + 0x18]
mov dword [ebp], ecx
mov ecx, dword [ebp + 0x34]
xor esi, esi
cmp edx, 0x5d
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x50], esi
jl 0x5c816b
cmp ecx, 0xfffffffe
jne 0x5c8148
cmp eax, esi
jl 0x5c813e
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x50], 1
jmp 0x5c8142
or dword [ebp + 0x34], 0xffffffff
or dword [ebp + 0x10], 0xffffffff
jmp 0x5c8157
cmp eax, esi
jl 0x5c8157
cmp dword [ebp - 0x18], esi
jge 0x5c8160
or eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jl 0x5c8c2a
mov eax, dword [ebp - 0x18]
mov dword [ebp + 0x18], eax
jmp 0x5c8c2a
cmp edx, 0x58
jne 0x5c8c2a
mov eax, dword [ebp - 0x18]
cmp eax, esi
jl 0x5c8c2a
jmp 0x5c8163
mov dword [ebp + 0x50], eax
mov esi, eax
movzx eax, byte [esi]
xor ecx, ecx
test byte [eax + 0x605370], 4
mov dword [ebp + 0x38], ecx
je 0x5c81b1
inc esi
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x605370], 4
jne 0x5c8197
mov dword [ebp + 0x38], ecx
movzx eax, byte [esi]
cmp eax, dword [ebp + 0x4c]
jne 0x5c8d26
cmp edx, 0x2d
jne 0x5c81e9
test ecx, ecx
je 0x5c8d34
mov eax, dword [edi + 0x30]
sub eax, ecx
inc eax
test eax, eax
mov dword [ebp + 0x38], eax
jg 0x5c8323
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x5c8db5
cmp edx, 0x2b
jne 0x5c8323
test ecx, ecx
je 0x5c8d34
add ecx, dword [edi + 0x30]
mov dword [ebp + 0x38], ecx
jmp 0x5c8323
cmp esi, 0x1c
jne 0x5c8436
mov ecx, dword [ebp + 0x50]
inc ecx
mov dl, byte [ecx]
cmp dl, 0x3c
je 0x5c8227
cmp dl, 0x27
je 0x5c8227
cmp dl, 0x7b
jne 0x5c8436
and dword [ebp + 0x40], 0
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
cmp al, 0x3c
jne 0x5c823d
mov dword [ebp + 0x4c], 0x3e
jmp 0x5c824e
xor ecx, ecx
cmp al, 0x27
setne cl
dec ecx
and ecx, 0xffffffaa
add ecx, 0x7d
mov dword [ebp + 0x4c], ecx
mov esi, dword [ebp + 0x50]
mov ecx, dword [edi + 0xc]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x3c], esi
je 0x5c8273
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x5c8266
mov eax, esi
sub eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x30], eax
je 0x5c82a4
test eax, eax
je 0x5c8d3f
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x4c]
jne 0x5c8d4a
cmp eax, 0x20
jg 0x5c74d6
and dword [ebp + 0x38], 0
jmp 0x5c8319
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x5c82df
push dword [ebp + 0x30]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x3c]
call fcn.005ddd40
add esp, 0xc
test eax, eax
jne 0x5c82d1
mov eax, dword [ebp + 0x30]
cmp byte [esi + eax + 2], 0
je 0x5c82df
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jl 0x5c82b1
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jge 0x5c82f2
movzx eax, byte [esi + 1]
mov ah, byte [esi]
mov dword [ebp + 0x38], eax
jmp 0x5c8319
mov eax, dword [ebp + 0x28]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x30]
mov eax, dword [ebp + 0x50]
push dword [ebp + 0x3c]
push edi
call fcn.005c5df0
add esp, 0x10
test eax, eax
mov dword [ebp + 0x38], eax
jle 0x5c81db
cmp dword [ebp + 0x40], 0
je 0x5c8443
mov eax, dword [edi + 0x14]
xor esi, esi
cmp dword [ebp + 0x7c], esi
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x44], eax
jne 0x5c83a4
and byte [ebx], 0
cmp dword [ebp + 0x38], esi
je 0x5c834c
push dword [ebp + 0x38]
mov eax, dword [edi + 0x14]
push esi
call fcn.005c61d5
pop ecx
pop ecx
mov dword [ebp + 0x44], eax
cmp eax, esi
jne 0x5c83f1
mov eax, dword [ebp + 0x28]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x50]
push esi
push edi
call fcn.005c5df0
add esp, 0x10
test eax, eax
jl 0x5c81db
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x38]
add ecx, eax
mov dword [ebp + 0x44], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi + 0x20]
add ecx, 4
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [edi + 0x20]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
mov eax, dword [ebp + 0x44]
and byte [ebx + 1], 0
mov byte [ebx], 0x5d
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x52
mov ecx, eax
sub ecx, dword [edi + 0x14]
add ebx, 3
sar ecx, 8
mov byte [ebx - 2], cl
sub al, byte [edi + 0x14]
mov byte [ebx - 1], al
and byte [ebx + 1], 0
mov byte [ebx], 0x55
mov byte [ebx + 2], 6
add ebx, 3
cmp dword [ebp + 0x34], 0xfffffffe
mov dword [ebp - 0x10], 9
jne 0x5c8c2a
or dword [ebp + 0x34], 0xffffffff
jmp 0x5c8c2a
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x5c83a4
mov esi, dword [ebp + 0x74]
test esi, esi
je 0x5c8d55
mov ecx, dword [esi + 4]
cmp ecx, eax
jb 0x5c8d55
push 0
push ebx
push ecx
call fcn.005c6242
add esp, 0xc
test eax, eax
je 0x5c83a1
mov esi, dword [esi]
test esi, esi
je 0x5c8d55
mov eax, dword [ebp + 0x44]
jmp 0x5c8408
cmp esi, 0x1d
jl 0x5c8481
push 0xffffffffffffffe3
pop ecx
sub ecx, eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c844d
or dword [ebp + 0x34], 0xffffffff
mov ecx, dword [ebp + 0x38]
mov byte [ebx], 0x51
mov dword [ebp + 0x48], ebx
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
xor eax, eax
inc ebx
inc eax
cmp ecx, 0x20
jge 0x5c846d
shl eax, cl
or dword [edi + 0x3c], eax
cmp ecx, dword [edi + 0x38]
jle 0x5c8c2a
mov dword [edi + 0x38], ecx
jmp 0x5c8c2a
cmp esi, 0x16
je 0x5c8d60
cmp esi, 0xf
je 0x5c8d60
cmp esi, 0x10
je 0x5c8d60
cmp esi, 5
jle 0x5c84ab
cmp esi, 0x17
jge 0x5c84ab
mov dword [ebp + 0x48], ebx
jmp 0x5c84af
and dword [ebp + 0x48], 0
neg al
jmp 0x5c8b74
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x5c84c8
cmp al, 0x2e
je 0x5c84c8
cmp al, 0x3d
jne 0x5c84dc
lea eax, [ebp - 0x3c]
push eax
mov eax, esi
call fcn.005c63f8
test eax, eax
pop ecx
jne 0x5c8d6b
and dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x50]
inc eax
mov dword [ebp + 0x50], eax
movzx esi, byte [eax]
cmp esi, 0x5c
mov dword [ebp + 0x4c], esi
jne 0x5c8517
inc eax
cmp byte [eax], 0x45
jne 0x5c84fd
mov dword [ebp + 0x50], eax
jmp 0x5c84e0
push 3
push 0x605470
push eax
call fcn.005ddd40
add esp, 0xc
test eax, eax
jne 0x5c855b
add dword [ebp + 0x50], 3
jmp 0x5c84e0
cmp dword [ebp + 0x3c], 0
jne 0x5c852b
cmp esi, 0x5e
jne 0x5c852b
mov dword [ebp + 0x3c], 1
jmp 0x5c84e0
cmp esi, 0x5d
jne 0x5c855b
test byte [edi + 0x43], 2
je 0x5c855b
cmp dword [ebp + 0x3c], 0
sete al
dec al
and al, 0xa0
add al, 0x6d
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c8550
or dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x10], eax
jmp 0x5c8c2a
or dword [ebp + 0x38], 0xffffffff
xor eax, eax
push 0x20
push eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x44], eax
lea eax, [ebp - 0x38]
push eax
call fcn.005dfec0
add esp, 0xc
test esi, esi
je 0x5c8dac
xor esi, esi
cmp dword [ebp + 0x14], esi
je 0x5c85a4
cmp dword [ebp + 0x4c], 0x5c
jne 0x5c8931
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x5c8931
mov dword [ebp + 0x14], esi
jmp 0x5c8753
cmp dword [ebp + 0x4c], 0x5b
jne 0x5c86d6
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x5c85c4
cmp al, 0x2e
je 0x5c85c4
cmp al, 0x3d
jne 0x5c8931
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp + 0x50]
call fcn.005c63f8
test eax, eax
pop ecx
je 0x5c8931
mov eax, dword [edi + 8]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
mov dword [ebp + 0xc], esi
jne 0x5c8d83
inc eax
inc eax
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5e
jne 0x5c8606
xor ecx, ecx
inc ecx
inc eax
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x50], eax
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
push ecx
push eax
call fcn.005c6438
cmp eax, esi
pop ecx
pop ecx
jl 0x5c8d8e
test byte [ebp + 0x28], 1
je 0x5c8629
cmp eax, 2
jg 0x5c8629
xor eax, eax
lea eax, [eax + eax*2]
mov esi, eax
shl esi, 2
mov eax, dword [esi + 0x604998]
add eax, dword [ebp + 0x24]
push 0x20
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.005dfb80
mov eax, dword [esi + 0x60499c]
mov edx, dword [esi + 0x6049a0]
add esp, 0xc
test eax, eax
jl 0x5c8682
mov esi, dword [ebp + 0x24]
xor ecx, ecx
add esi, eax
test edx, edx
jl 0x5c8673
mov al, byte [esi + ecx]
or byte [ebp + ecx - 0x78], al
inc ecx
cmp ecx, 0x20
jl 0x5c8664
jmp 0x5c8682
mov al, byte [esi + ecx]
not al
and byte [ebp + ecx - 0x78], al
inc ecx
cmp ecx, 0x20
jl 0x5c8673
xor eax, eax
cmp edx, eax
jge 0x5c868a
neg edx
cmp edx, 1
jne 0x5c8695
and byte [ebp - 0x77], 0xc3
jmp 0x5c869e
cmp edx, 2
jne 0x5c869e
and byte [ebp - 0x6d], 0x7f
cmp dword [ebp + 0xc], eax
je 0x5c86b5
mov cl, byte [ebp + eax - 0x78]
not cl
or byte [ebp + eax - 0x38], cl
inc eax
cmp eax, 0x20
jl 0x5c86a3
jmp 0x5c86c3
mov cl, byte [ebp + eax - 0x78]
or byte [ebp + eax - 0x38], cl
inc eax
cmp eax, 0x20
jl 0x5c86b5
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x44], 0xa
jmp 0x5c8b20
cmp dword [ebp + 0x4c], 0x5c
jne 0x5c8931
mov esi, dword [ebp + 0x68]
push 1
push dword [ebp + 0x28]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push esi
push eax
call fcn.005c59c0
add esp, 0x14
cmp dword [esi], 0
mov ecx, eax
mov dword [ebp + 0x4c], ecx
jne 0x5c8db5
mov edx, ecx
neg edx
cmp edx, 5
jne 0x5c871b
mov dword [ebp + 0x4c], 8
jmp 0x5c8931
cmp edx, 0x16
jne 0x5c872c
mov dword [ebp + 0x4c], 0x58
jmp 0x5c8931
cmp edx, 0x11
jne 0x5c873d
mov dword [ebp + 0x4c], 0x52
jmp 0x5c8931
cmp edx, 0x1a
jne 0x5c8767
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x5c875b
add eax, 2
cmp byte [eax], 0x45
jne 0x5c875b
mov dword [ebp + 0x50], eax
jmp 0x5c8b20
mov dword [ebp + 0x14], 1
jmp 0x5c8b20
cmp edx, 0x19
je 0x5c8b20
test ecx, ecx
jge 0x5c8931
add dword [ebp + 0x44], 2
mov eax, dword [edi + 8]
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x5c8855
mov ecx, edx
sub ecx, 6
je 0x5c8837
dec ecx
je 0x5c8824
dec ecx
je 0x5c87fe
dec ecx
je 0x5c87e1
dec ecx
je 0x5c87c2
dec ecx
jne 0x5c888b
mov cl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x38], cl
inc esi
cmp esi, 0x20
jl 0x5c87ac
jmp 0x5c8b20
mov dword [ebp + 0x30], 1
mov cl, byte [eax + esi + 0xa0]
not cl
or byte [ebp + esi - 0x38], cl
inc esi
cmp esi, 0x20
jl 0x5c87c9
jmp 0x5c8b20
lea ecx, [ebp - 0x38]
sub eax, ecx
lea ecx, [ebp + esi - 0x38]
mov dl, byte [ecx + eax]
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x5c87e6
and byte [ebp - 0x37], 0xf7
jmp 0x5c8b20
lea ecx, [ebp - 0x38]
mov dword [ebp + 0x30], 1
sub eax, ecx
lea ecx, [ebp + esi - 0x38]
mov dl, byte [ecx + eax]
not dl
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x5c880a
or byte [ebp - 0x37], 8
jmp 0x5c8b20
mov cl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x38], cl
inc esi
cmp esi, 0x20
jl 0x5c8824
jmp 0x5c8b20
mov dword [ebp + 0x30], 1
xor esi, esi
mov cl, byte [eax + esi + 0x40]
not cl
or byte [ebp + esi - 0x38], cl
inc esi
cmp esi, 0x20
jl 0x5c8840
jmp 0x5c8b20
cmp ecx, 0xfffffff9
je 0x5c8b20
cmp ecx, 0xfffffffa
je 0x5c8b20
cmp ecx, 0xfffffff5
je 0x5c8b20
cmp ecx, 0xfffffff6
je 0x5c8b20
cmp ecx, 0xfffffff7
je 0x5c8b20
cmp ecx, 0xfffffff8
je 0x5c8b20
cmp edx, 0x13
jne 0x5c88a1
or byte [ebp - 0x37], 2
or byte [ebp - 0x34], 1
or byte [ebp - 0x24], 1
jmp 0x5c8b20
cmp edx, 0x12
jne 0x5c88d9
xor ecx, ecx
mov esi, 0xfe
mov eax, ecx
dec eax
mov edx, 0xff
je 0x5c88c5
sub eax, 3
je 0x5c88c1
sub eax, 0x10
jne 0x5c88ca
mov edx, esi
jmp 0x5c88ca
mov edx, 0xfd
or byte [ebp + ecx - 0x38], dl
inc ecx
cmp ecx, 0x20
jl 0x5c88ad
jmp 0x5c8b20
cmp edx, 0x15
jne 0x5c88eb
or byte [ebp - 0x37], 0x3c
or byte [ebp - 0x28], 0x20
jmp 0x5c8b20
cmp edx, 0x14
jne 0x5c891a
xor eax, eax
mov edx, eax
dec edx
mov ecx, 0xff
je 0x5c8906
sub edx, 0xf
jne 0x5c890b
add ecx, 0xffffffe0
jmp 0x5c890b
mov ecx, 0xc3
or byte [ebp + eax - 0x38], cl
inc eax
cmp eax, 0x20
jl 0x5c88f2
jmp 0x5c8b20
test byte [ebp + 0x28], 0x40
jne 0x5c8d99
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
sub dword [ebp + 0x44], 2
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x50]
jmp 0x5c8948
mov eax, dword [ebp + 0x50]
add eax, 2
cmp byte [eax], 0x45
jne 0x5c894e
and dword [ebp + 0x14], 0
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x5c8936
cmp dword [ebp + 0x4c], 0xd
mov edx, dword [ebp + 0x50]
mov ecx, edx
mov dword [ebp - 8], ecx
je 0x5c8962
cmp dword [ebp + 0x4c], 0xa
jne 0x5c8966
or dword [edi + 0x44], 0x20
xor esi, esi
cmp dword [ebp + 0x14], esi
jne 0x5c8ad7
cmp byte [edx + 1], 0x2d
jne 0x5c8ad7
push 2
pop eax
add edx, eax
mov dword [ebp + 0x50], edx
cmp byte [edx], 0x5c
jne 0x5c89c3
cmp byte [edx + 1], 0x45
jne 0x5c89b5
add edx, eax
mov dword [ebp + 0x50], edx
cmp byte [edx], 0x5c
je 0x5c8988
jmp 0x5c89b5
cmp byte [edx + 1], 0x51
jne 0x5c89c3
add edx, eax
mov dword [ebp + 0x50], edx
cmp byte [edx], 0x5c
jne 0x5c89bc
cmp byte [edx + 1], 0x45
jne 0x5c89bc
add edx, eax
mov dword [ebp + 0x50], edx
cmp byte [edx], 0x5c
je 0x5c899a
jmp 0x5c89c3
mov dword [ebp + 0x14], 1
mov al, byte [edx]
test al, al
je 0x5c8ad4
cmp dword [ebp + 0x14], esi
jne 0x5c89da
cmp al, 0x5d
je 0x5c8ad4
cmp dword [ebp + 0x14], esi
movzx eax, al
mov dword [ebp + 0x40], eax
jne 0x5c8a3c
cmp eax, 0x5c
jne 0x5c8a3c
mov esi, dword [ebp + 0x68]
push 1
push dword [ebp + 0x28]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push esi
push eax
call fcn.005c59c0
add esp, 0x14
cmp dword [esi], 0
mov dword [ebp + 0x40], eax
jne 0x5c8db5
test eax, eax
jge 0x5c8a3f
cmp eax, 0xfffffffb
jne 0x5c8a1f
push 8
pop eax
mov dword [ebp + 0x40], eax
jmp 0x5c8a3f
cmp eax, 0xffffffea
jne 0x5c8a28
push 0x58
jmp 0x5c8a19
cmp eax, 0xffffffef
jne 0x5c8a31
push 0x52
jmp 0x5c8a19
mov eax, dword [ebp - 8]
mov dword [ebp + 0x50], eax
jmp 0x5c8ad7
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x4c]
cmp eax, ecx
jl 0x5c8da4
je 0x5c8ad7
cmp eax, 0xd
je 0x5c8a5a
cmp eax, 0xa
jne 0x5c8a5e
or dword [edi + 0x44], 0x20
mov esi, dword [ebp + 0x44]
mov edx, eax
sub edx, ecx
cmp dword [ebp + 0x7c], 0
lea edx, [esi + edx + 1]
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x38], eax
jne 0x5c8b20
cmp ecx, eax
jg 0x5c8b20
mov eax, dword [ebp + 0x28]
and eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
push 8
pop esi
idiv esi
and ecx, 7
lea esi, [ebp + eax - 0x38]
mov al, 1
shl al, cl
or byte [esi], al
cmp dword [ebp - 8], 0
je 0x5c8ac7
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
push 8
pop esi
idiv esi
and ecx, 7
lea esi, [ebp + eax - 0x38]
mov al, 1
shl al, cl
or byte [esi], al
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x40]
jle 0x5c8a8a
jmp 0x5c8b20
mov dword [ebp + 0x50], ecx
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
push 8
pop esi
idiv esi
and ecx, 7
lea esi, [ebp + eax - 0x38]
mov al, 1
shl al, cl
or byte [esi], al
test byte [ebp + 0x28], 1
je 0x5c8b17
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
push 8
pop esi
idiv esi
mov dword [ebp + 0x4c], ecx
and ecx, 7
lea esi, [ebp + eax - 0x38]
mov al, 1
shl al, cl
or byte [esi], al
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x44]
mov dword [ebp + 0x38], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
test eax, eax
mov dword [ebp + 0x4c], eax
je 0x5c8dac
cmp eax, 0x5d
jne 0x5c857e
cmp dword [ebp + 0x14], 0
jne 0x5c857e
cmp dword [ebp + 0x44], 1
jne 0x5c8bd2
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x18]
mov dword [ebp], eax
je 0x5c8b7c
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c8b67
or dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x10], eax
mov al, byte [ebp + 0x38]
mov byte [ebx], 0x1e
inc ebx
mov byte [ebx], al
inc ebx
jmp 0x5c8c2a
mov al, byte [ebp + 0x38]
mov cl, byte [ebp + 0x28]
and cl, 1
or cl, 0x1c
mov byte [ebx], cl
mov dword [ebp + 0x48], ebx
inc ebx
mov byte [ebx], al
inc ebx
cmp al, 0xd
je 0x5c8b99
cmp al, 0xa
jne 0x5c8b9d
or dword [edi + 0x44], 0x20
mov ecx, dword [ebp + 0x34]
cmp ecx, 0xfffffffe
jne 0x5c8bba
or dword [ebp + 0x10], 0xffffffff
mov ecx, dword [ebp + 0x18]
movzx eax, al
or eax, dword [ebp - 0x40]
mov dword [ebp], ecx
mov dword [ebp + 0x34], eax
jmp 0x5c8c2a
mov eax, dword [ebp + 0x18]
mov dword [ebp], eax
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
mov dword [ebp + 0x10], ecx
or eax, dword [ebp - 0x40]
jmp 0x5c8163
cmp dword [ebp + 0x34], 0xfffffffe
jne 0x5c8bdc
or dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp], eax
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x30]
setne cl
add cl, 0x4e
mov byte [ebx], cl
inc ebx
test eax, eax
je 0x5c8c18
cmp dword [ebp + 0x7c], 0
jne 0x5c8c27
lea eax, [ebp - 0x38]
push 0x20
mov esi, ebx
sub eax, ebx
pop ecx
mov dl, byte [eax + esi]
not dl
mov byte [esi], dl
inc esi
dec ecx
jne 0x5c8c0b
jmp 0x5c8c27
push 0x20
lea eax, [ebp - 0x38]
push eax
push ebx
call fcn.005dfb80
add esp, 0xc
add ebx, 0x20
inc dword [ebp + 0x50]
mov ecx, dword [ebp + 0x50]
xor esi, esi
jmp 0x5c6b6b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x40
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
dec esi
mov dword [eax], 0xc
mov dword [ebp + 0x50], esi
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x14
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3e
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x5c8db5
mov ecx, dword [ebp + 0x50]
xor eax, eax
cmp byte [ecx + 1], 0x3a
setne al
dec eax
and eax, 0xffffffee
add eax, 0x1f
jmp 0x5c7305
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x5c8db5
mov dword [esi], 8
jmp 0x5c8db5
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x50]
mov dword [eax], ecx
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret