Function at 0x5a2e68
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffddc
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor edx, edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
xor edx, edx
mov eax, dword [ebp - 8]
mov esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor eax, eax
xor edx, edx
mov ecx, dword [ecx]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], edx
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test byte [ebp - 0x47], 8
setne al
and eax, 1
mov dword [ebp - 0x80], eax
mov eax, 0xfffffffe
test byte [ebp - 0x47], 2
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x24]
xor ecx, 1
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x48], 1
je 0x5a2f0e
mov edx, 0x100
jmp 0x5a2f10
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
mov eax, dword [ebp + 8]
test eax, eax
je 0x5a2fbd
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x5a2f3f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x5a6ea3
mov ecx, dword [ebp - 0x54]
cmp esi, ecx
jae 0x5a2f49
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, 0x7fffffeb
mov ecx, dword [eax]
mov eax, esi
sub edx, ecx
mov ecx, dword [ebp - 0x54]
sub eax, ecx
cmp edx, eax
jge 0x5a2f6e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x5a6ea3
mov ecx, esi
mov eax, dword [ebp - 0x54]
sub ecx, eax
mov edx, dword [ebp + 8]
add dword [edx], ecx
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x5a2fb5
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x58]
cmp eax, edx
jbe 0x5a2fb8
mov ecx, esi
mov eax, dword [ebp - 0x70]
sub ecx, eax
push ecx
mov edx, dword [ebp - 0x70]
push edx
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.005a0c7c
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x58]
add esp, 0xc
sub eax, edx
mov ecx, dword [ebp - 0x58]
sub esi, eax
mov dword [ebp - 0x70], ecx
jmp 0x5a2fb8
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x5a2fda
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x5a2fda
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x5a6ea3
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x5a3046
test edi, edi
je 0x5a3046
cmp edi, 0x5c
jne 0x5a3006
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x5a3006
xor ecx, ecx
mov dword [ebp - 0x60], ecx
inc dword [ebp - 0x68]
jmp 0x5a6e9b
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x5a3026
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5a3021
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.005a22d0
xor ecx, ecx
mov dword [ebp - 0x74], ecx
test byte [ebp - 0x47], 0x40
je 0x5a6d5d
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.005a22a4
mov esi, eax
jmp 0x5a6d5d
cmp edi, 0x2a
je 0x5a306b
cmp edi, 0x2b
je 0x5a306b
cmp edi, 0x3f
je 0x5a306b
cmp edi, 0x7b
jne 0x5a3067
mov eax, dword [ebp - 0x68]
inc eax
call fcn.005a1424
test eax, eax
jne 0x5a306b
xor edx, edx
jmp 0x5a3070
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x5a30ab
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0x5a30ab
mov eax, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test eax, eax
jg 0x5a30ab
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5a30a6
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.005a22d0
xor ecx, ecx
mov dword [ebp - 0x74], ecx
test byte [ebp - 0x48], 8
je 0x5a3166
mov eax, dword [ebx + 0xc]
test byte [eax + edi], 1
jne 0x5a6e9b
cmp edi, 0x23
jne 0x5a3166
jmp 0x5a3147
mov edx, dword [ebx + 0x50]
test edx, edx
je 0x5a3103
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x68]
cmp ecx, eax
jbe 0x5a30f8
lea edx, [ebx + 0x54]
push edx
mov ecx, dword [ebp - 0x80]
push ecx
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x68]
call fcn.005b1c18
test eax, eax
jne 0x5a30fc
xor ecx, ecx
jmp 0x5a313a
mov ecx, 1
jmp 0x5a313a
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x54]
sub eax, edx
mov edx, dword [ebp - 0x68]
cmp eax, edx
jb 0x5a3131
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
mov al, byte [ebx + 0x58]
cmp cl, al
jne 0x5a3131
mov edx, dword [ebx + 0x54]
dec edx
je 0x5a3135
mov ecx, dword [ebp - 0x68]
mov cl, byte [ecx + 1]
mov al, byte [ebx + 0x59]
cmp cl, al
je 0x5a3135
xor ecx, ecx
jmp 0x5a313a
mov ecx, 1
test ecx, ecx
je 0x5a3147
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x5a3157
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x5a30cd
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
jne 0x5a6e9b
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x5a3187
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x5a3187
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.005a22a4
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x5a31d5
je 0x5a48f5
cmp edx, 0x29
jg 0x5a31b7
je 0x5a320d
sub edx, 1
jb 0x5a320d
sub edx, 0x23
je 0x5a328d
sub edx, 4
je 0x5a5672
jmp 0x5a6d5d
sub edx, 0x2a
je 0x5a48d7
dec edx
je 0x5a48e5
sub edx, 3
je 0x5a329b
jmp 0x5a6d5d
cmp edx, 0x5e
jg 0x5a31fc
je 0x5a326a
sub edx, 0x5b
je 0x5a32ea
dec edx
je 0x5a69d1
dec edx
je 0x5a32cd
jmp 0x5a6d5d
sub edx, 0x7b
je 0x5a48a4
dec edx
je 0x5a320d
jmp 0x5a6d5d
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x2c]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x30]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [edi], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x5a3260
mov ecx, dword [ebp + 8]
mov edx, esi
mov ebx, 0x7fffffeb
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x54]
sub ebx, eax
sub edx, ecx
cmp ebx, edx
jge 0x5a3256
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x5a6ea3
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x54]
sub esi, edx
add dword [ecx], esi
mov eax, 1
jmp 0x5a6ead
test byte [ebp - 0x48], 2
je 0x5a327f
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5a327f
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x5a6e9b
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1b
inc esi
jmp 0x5a6e9b
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x5a32aa
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 4
je 0x5a32c3
mov al, 0xd
jmp 0x5a32c5
mov al, 0xc
mov byte [esi], al
inc esi
jmp 0x5a6e9b
test byte [ebx + 0x43], 2
je 0x5a6d5d
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x40
jmp 0x5a6ea3
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3a
je 0x5a3313
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x5a3313
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x5a3345
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.005a214c
test eax, eax
je 0x5a3345
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
jne 0x5a3336
mov eax, 0xd
jmp 0x5a333b
mov eax, 0x1f
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
jmp 0x5a6ea3
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx edi, byte [ecx]
cmp edi, 0x5c
jne 0x5a338b
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x5a336d
inc dword [ebp - 0x68]
jmp 0x5a334d
push 3
push 0x64fcbd
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call fcn.005a0cb4
add esp, 0xc
test eax, eax
jne 0x5a33a6
add dword [ebp - 0x68], 3
jmp 0x5a334d
mov ecx, dword [ebp - 0x94]
test ecx, ecx
jne 0x5a33a6
cmp edi, 0x5e
jne 0x5a33a6
mov dword [ebp - 0x94], 1
jmp 0x5a334d
cmp edi, 0x5d
jne 0x5a33de
test byte [ebx + 0x43], 2
je 0x5a33de
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x5a33bf
mov dl, 0xd
jmp 0x5a33c1
mov dl, 0x6d
mov byte [esi], dl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x5a33d3
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
jmp 0x5a6e9b
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb0], 0xffffffff
push 0x20
lea edx, [ebp - 0x1fc]
push 0
push edx
call fcn.005a0c98
xor ecx, ecx
lea eax, [esi + 4]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x88], edx
je 0x5a468f
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a34f7
cmp edi, 0x7f
jle 0x5a34f7
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
cmp edi, 0xc0
jl 0x5a34f7
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x650128]
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x64fd6c]
and edi, edx
shl edi, cl
mov dword [ebp - 0xe0], 1
mov ecx, dword [ebp - 0x68]
lea eax, [ecx + 1]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
cmp edx, eax
jg 0x5a34ee
sub dword [ebp - 0xe8], 6
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1d8]
xor eax, eax
mov al, byte [edx]
and eax, 0x3f
shl eax, cl
or edi, eax
inc dword [ebp - 0xe0]
inc dword [ebp - 0x1d8]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
cmp edx, ecx
jle 0x5a34b4
mov ecx, dword [ebp - 0xe4]
add dword [ebp - 0x68], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x5a351d
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
sub edx, eax
mov ecx, dword [ebp + 8]
add dword [ecx], edx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x5a3550
cmp edi, 0x5c
jne 0x5a4095
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x5a4095
xor ecx, ecx
mov dword [ebp - 0x60], ecx
inc dword [ebp - 0x68]
jmp 0x5a466e
cmp edi, 0x5b
jne 0x5a3803
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3a
je 0x5a3584
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2e
je 0x5a3584
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3d
jne 0x5a3803
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.005a214c
test eax, eax
je 0x5a3803
xor ecx, ecx
mov dword [ebp - 0xec], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x5a35c3
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1f
jmp 0x5a6ea3
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5e
jne 0x5a35ea
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, eax
mov eax, dword [ebp - 0x68]
call fcn.005a21a0
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x5a3618
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x5a6ea3
test byte [ebp - 0x48], 1
je 0x5a3631
mov ecx, dword [ebp - 0xf0]
cmp ecx, 2
jg 0x5a3631
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
lea edx, [edx + edx*2]
mov dword [ebp - 0xf0], edx
push 0x20
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx*4 + 0x64f164]
mov edx, dword [ebp - 0xfc]
add eax, edx
push eax
lea ecx, [ebp - 0x21c]
push ecx
call fcn.005a0c60
add esp, 0xc
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x64f168]
mov dword [ebp - 0xf4], edx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx*4 + 0x64f16c]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0xf4]
test edx, edx
jl 0x5a3733
mov ecx, dword [ebp - 0xf8]
test ecx, ecx
jl 0x5a36ec
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov dl, byte [eax]
mov eax, dword [ebp - 0x1dc]
or byte [eax], dl
inc edi
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a36c8
jmp 0x5a3733
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
mov eax, dword [ebp - 0x1d8]
not dl
and byte [eax], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x5a370f
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x5a3743
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x5a3755
and byte [ebp - 0x21b], 0xc3
jmp 0x5a3767
mov ecx, dword [ebp - 0xf8]
cmp ecx, 2
jne 0x5a3767
and byte [ebp - 0x211], 0x7f
mov eax, dword [ebp - 0xec]
test eax, eax
je 0x5a37b1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [ecx]
not cl
or byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a378b
jmp 0x5a37ed
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x1d8]
inc edi
mov cl, byte [ecx]
or byte [eax], cl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x5a37cb
mov edx, dword [ebp - 0x6c]
inc edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0xac], 0xa
jmp 0x5a466e
cmp edi, 0x5c
jne 0x5a4095
mov ecx, dword [ebp - 0x48]
push ecx
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.005a0f00
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x5a6ea3
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x5a383f
mov edi, 8
jmp 0x5a38a6
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x5a384f
mov edi, 0x58
jmp 0x5a38a6
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x5a385f
mov edi, 0x52
jmp 0x5a38a6
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x5a3899
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x5a388b
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x5a388b
add dword [ebp - 0x68], 2
jmp 0x5a466e
mov dword [ebp - 0x60], 1
jmp 0x5a466e
mov edx, edi
neg edx
cmp edx, 0x19
je 0x5a466e
test edi, edi
jge 0x5a4095
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x100], ecx
add dword [ebp - 0xac], 2
mov eax, dword [ebp + 8]
test eax, eax
jne 0x5a3ac8
mov edx, edi
neg edx
add edx, 0xfffffffa
cmp edx, 5
ja case.default.0x5a38d9
jmp dword [edx*4 + 0x5a38e0]
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a3915
jmp 0x5a466e
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x5a3963
jmp 0x5a466e
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a39ac
jmp 0x5a466e
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x5a39fd
jmp 0x5a466e
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a3a42
and byte [ebp - 0x1fb], 0xf7
jmp 0x5a466e
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x5a3a96
or byte [ebp - 0x1fb], 8
jmp 0x5a466e
cmp edi, 0xfffffff9
je 0x5a466e
cmp edi, 0xfffffffa
je 0x5a466e
cmp edi, 0xfffffff5
je 0x5a466e
cmp edi, 0xfffffff6
je 0x5a466e
cmp edi, 0xfffffff7
je 0x5a466e
cmp edi, 0xfffffff8
je 0x5a466e
mov ecx, edi
neg ecx
cmp ecx, 0x13
jne 0x5a3c2b
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5a466e
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, 0x1680
mov byte [edx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x180e
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x202f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x205f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x3000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
jmp 0x5a466e
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x5a3e48
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x5a3c61
sub edx, 3
je 0x5a3c6a
sub edx, 0x10
je 0x5a3c73
jmp 0x5a3c7a
xor dword [ebp - 0x104], 2
jmp 0x5a3c7a
xor dword [ebp - 0x104], 1
jmp 0x5a3c7a
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a3c46
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5a466e
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, 0x100
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x1681
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x180f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x200b
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2030
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2060
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x3001
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
jmp 0x5a466e
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x5a3ec6
or byte [ebp - 0x1fb], 4
or byte [ebp - 0x1fb], 8
or byte [ebp - 0x1fb], 0x10
or byte [ebp - 0x1fb], 0x20
or byte [ebp - 0x1ec], 0x20
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a466e
mov dword [ebp - 0x7c], 1
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, 0x2028
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
jmp 0x5a466e
mov edx, edi
neg edx
cmp edx, 0x14
jne 0x5a3fc3
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x5a3ef7
sub edx, 0xf
je 0x5a3f15
jmp 0x5a3f1c
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x5a3f1c
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a3ee1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5a466e
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, 0x100
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
jmp 0x5a466e
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x5a3fd9
mov ecx, edi
neg ecx
cmp ecx, 0xf
jne 0x5a4069
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x10c]
call fcn.005a12fc
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x5a6ea3
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x5a4025
mov cl, 3
jmp 0x5a4027
mov cl, 4
mov eax, dword [ebp - 0x84]
mov byte [eax], cl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x114]
mov eax, dword [ebp - 0x84]
mov byte [eax], dl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x110]
mov ecx, dword [ebp - 0x84]
mov byte [ecx], dl
inc dword [ebp - 0x84]
sub dword [ebp - 0xac], 2
jmp 0x5a466e
test byte [ebp - 0x48], 0x40
je 0x5a407d
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x5a6ea3
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x5a4095
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x5a40af
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
je 0x5a408c
mov edx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], edx
je 0x5a40c2
cmp edi, 0xa
jne 0x5a40c6
or dword [ebx + 0x44], 0x20
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x5a4558
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2d
jne 0x5a4558
add dword [ebp - 0x68], 2
jmp 0x5a40ec
add dword [ebp - 0x68], 2
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x5a4133
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
je 0x5a40e8
jmp 0x5a4133
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x5a412a
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x45
jne 0x5a412a
add dword [ebp - 0x68], 2
jmp 0x5a4133
mov dword [ebp - 0x60], 1
jmp 0x5a414c
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x5a414c
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x51
je 0x5a4107
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
je 0x5a4168
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x5a4176
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
jne 0x5a4176
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], edx
jmp 0x5a4558
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a424b
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xc0
jl 0x5a4258
mov eax, dword [ebp - 0x118]
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x650128]
mov dword [ebp - 0x120], edx
mov ecx, dword [ebp - 0x120]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x120]
mov edx, dword [eax*4 + 0x64fd6c]
mov eax, dword [ebp - 0x118]
and edx, eax
shl edx, cl
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x11c], 1
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
cmp edx, ecx
jg 0x5a4240
sub dword [ebp - 0x124], 6
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, cl
or dword [ebp - 0x118], eax
inc dword [ebp - 0x11c]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
cmp edx, ecx
jle 0x5a4205
mov ecx, dword [ebp - 0x120]
add dword [ebp - 0x68], ecx
jmp 0x5a4258
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x5a42f6
mov eax, dword [ebp - 0x118]
cmp eax, 0x5c
jne 0x5a42f6
mov edx, dword [ebp - 0x48]
push edx
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.005a0f00
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x5a6ea3
mov edx, dword [ebp - 0x118]
test edx, edx
jge 0x5a42f6
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xfffffffb
jne 0x5a42ba
mov dword [ebp - 0x118], 8
jmp 0x5a42f6
mov eax, dword [ebp - 0x118]
cmp eax, 0xffffffea
jne 0x5a42d1
mov dword [ebp - 0x118], 0x58
jmp 0x5a42f6
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffef
jne 0x5a42e8
mov dword [ebp - 0x118], 0x52
jmp 0x5a42f6
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x5a4558
mov eax, dword [ebp - 0x118]
cmp edi, eax
jle 0x5a430e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 8
jmp 0x5a6ea3
mov ecx, dword [ebp - 0x118]
cmp edi, ecx
je 0x5a4558
mov eax, dword [ebp - 0x118]
cmp eax, 0xd
je 0x5a4332
mov edx, dword [ebp - 0x118]
cmp edx, 0xa
jne 0x5a4336
or dword [ebx + 0x44], 0x20
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a44c0
mov eax, dword [ebp - 0x118]
cmp eax, 0xff
jg 0x5a4367
test byte [ebp - 0x48], 1
je 0x5a44c0
mov edx, dword [ebp - 0x118]
cmp edx, 0x7f
jle 0x5a44c0
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x5a4482
mov dword [ebp - 0x130], edi
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x134], ecx
jmp 0x5a445c
mov eax, dword [ebp - 0x128]
cmp eax, edi
jb 0x5a43ad
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp edx, eax
jbe 0x5a445c
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x5a43cf
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x5a43cf
mov edi, dword [ebp - 0x128]
jmp 0x5a445c
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x5a43fe
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x5a43fe
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x5a445c
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x5a441f
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x5a4445
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x128]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.005a22f8
test eax, eax
jne 0x5a438f
mov ecx, dword [ebp - 0x84]
mov eax, edi
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
jmp 0x5a466e
mov ecx, dword [ebp - 0x118]
sub ecx, edi
inc ecx
add dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 8]
test eax, eax
jne 0x5a466e
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x5a466e
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x5a4506
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x5a4548
mov ecx, dword [ebx + 4]
xor eax, eax
mov al, byte [ecx + edi]
mov dword [ebp - 0x138], eax
mov al, 1
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x138]
and ecx, 7
shl al, cl
test edx, edx
jns 0x5a453e
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
inc edi
mov ecx, dword [ebp - 0x118]
cmp edi, ecx
jle 0x5a44f4
jmp 0x5a466e
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5a461a
cmp edi, 0xff
jg 0x5a457e
test byte [ebp - 0x48], 1
je 0x5a461a
cmp edi, 0x7f
jle 0x5a461a
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, edi
mov byte [edx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
test byte [ebp - 0x48], 1
je 0x5a466e
mov ecx, edi
test ecx, ecx
jns 0x5a45ba
add ecx, 0x7f
sar ecx, 7
movzx ecx, byte [ecx + 0x65b094]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x5a45d5
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x651294]
mov ecx, dword [edx*8 + 0x650450]
add ecx, edi
mov dword [ebp - 0x13c], ecx
cmp ecx, edi
je 0x5a466e
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x13c]
call fcn.005b1f0c
add dword [ebp - 0x84], eax
jmp 0x5a466e
mov ecx, edi
mov dl, 1
and ecx, 7
mov eax, edi
shl dl, cl
test eax, eax
jns 0x5a462c
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
test byte [ebp - 0x48], 1
je 0x5a4662
mov edx, dword [ebx + 4]
xor ecx, ecx
mov al, 1
mov cl, byte [edx + edi]
mov edi, ecx
mov ecx, edi
mov edx, edi
and ecx, 7
shl al, cl
test edx, edx
jns 0x5a4658
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
inc dword [ebp - 0xac]
mov dword [ebp - 0xb0], edi
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx edi, byte [ecx]
test edi, edi
je 0x5a468f
cmp edi, 0x5d
jne 0x5a342d
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x5a342d
test edi, edi
jne 0x5a46a1
mov edx, dword [ebp + 0x1c]
mov dword [edx], 6
jmp 0x5a6ea3
mov ecx, dword [ebp - 0xac]
dec ecx
jne 0x5a475c
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
jne 0x5a475c
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5a46dc
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x5a46dc
mov ecx, dword [ebp - 0xb0]
cmp ecx, 0x80
jge 0x5a475c
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x5a4713
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5a46fb
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov byte [esi], 0x1e
inc esi
mov dl, byte [ebp - 0xb0]
mov byte [esi], dl
inc esi
jmp 0x5a6e9b
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a4741
mov eax, dword [ebp - 0xb0]
cmp eax, 0x7f
jle 0x5a4741
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0xb0]
call fcn.005b1f0c
mov dword [ebp - 0xd0], eax
jmp 0x5a6db1
mov dl, byte [ebp - 0xb0]
mov byte [ebp - 0xd8], dl
mov dword [ebp - 0xd0], 1
jmp 0x5a6db1
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5a476b
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x5a4824
mov ecx, dword [ebp - 0x98]
test ecx, ecx
jne 0x5a4824
mov eax, dword [ebp - 0x84]
mov byte [eax], 0
inc dword [ebp - 0x84]
mov byte [esi], 0x50
inc esi
add esi, 2
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x5a47b4
mov cl, 1
jmp 0x5a47b6
xor ecx, ecx
mov byte [esi], cl
mov eax, dword [ebp - 0xac]
test eax, eax
jle 0x5a47f9
or byte [esi], 2
inc esi
mov edx, dword [ebp - 0x84]
sub edx, esi
lea ecx, [esi + 0x20]
push edx
push esi
push ecx
call fcn.005a0c7c
add esp, 0xc
lea eax, [ebp - 0x1fc]
push 0x20
push eax
push esi
call fcn.005a0c60
add esp, 0xc
mov esi, dword [ebp - 0x84]
add esi, 0x20
jmp 0x5a47ff
mov esi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x70]
mov eax, esi
sub eax, edx
mov ecx, dword [ebp - 0x70]
sar eax, 8
mov byte [ecx + 1], al
mov ecx, esi
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
sub ecx, eax
and cl, 0xff
mov byte [edx + 2], cl
jmp 0x5a6e9b
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
cmp ecx, eax
jne 0x5a4838
mov dl, 0x4e
jmp 0x5a483a
mov dl, 0x4f
mov byte [esi], dl
inc esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x5a488a
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x5a489c
xor edi, edi
mov eax, esi
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [ecx]
not cl
mov byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x5a4864
jmp 0x5a489c
push 0x20
lea edx, [ebp - 0x1fc]
push edx
push esi
call fcn.005a0c60
add esp, 0xc
add esi, 0x20
jmp 0x5a6e9b
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
je 0x5a6d5d
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.005a14a4
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x5a6ea3
jmp 0x5a4901
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x5a4901
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x5a4901
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x5a4916
mov edx, dword [ebp + 0x1c]
mov dword [edx], 9
jmp 0x5a6ea3
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x5a4929
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jne 0x5a4937
xor edx, edx
jmp 0x5a493c
mov edx, 0x200
mov dword [ebp - 0x40], edx
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x5a4973
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x5a4991
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x5a498b
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x10], ecx
inc dword [ebp - 0x68]
jmp 0x5a4991
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1c
je 0x5a49ad
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1d
jne 0x5a4a7f
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a4a0c
test byte [esi - 1], 0x80
je 0x5a4a0c
lea eax, [esi - 1]
mov dword [ebp - 0x140], eax
jmp 0x5a49cb
dec dword [ebp - 0x140]
mov edx, dword [ebp - 0x140]
xor ecx, ecx
mov cl, byte [edx]
and ecx, 0xc0
cmp ecx, 0x80
je 0x5a49c5
mov edi, esi
mov eax, dword [ebp - 0x140]
sub edi, eax
push edi
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [ebp - 0x90]
push ecx
call fcn.005a0c60
add esp, 0xc
or edi, 0x80
jmp 0x5a4a23
movzx edi, byte [esi - 1]
mov eax, dword [ebp - 0x18]
dec eax
jle 0x5a4a23
mov edx, dword [ebp - 0x3c]
or edx, edi
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
jne 0x5a4b40
mov eax, dword [ebp - 0x1c]
test eax, eax
jge 0x5a4b40
lea edx, [ebp - 0x90]
push edx
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov edx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x80]
mov edx, edi
call fcn.005a2394
test eax, eax
je 0x5a4b40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
jmp 0x5a4b40
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1e
jne 0x5a4ae7
mov dword [ebp - 0x14], 0xd
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [ecx + 1]
jne 0x5a4b40
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x5a4b40
push 0
mov edx, edi
mov ecx, dword [ebp - 0x68]
mov eax, 0x1e
inc ecx
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push ebx
mov ecx, dword [ebp - 0x80]
call fcn.005a2394
test eax, eax
je 0x5a4b40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
jmp 0x5a4b40
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x17
jge 0x5a4dad
mov dword [ebp - 0x14], 0x1a
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [ecx]
jne 0x5a4b40
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x5a4b40
push 0
mov eax, edi
mov ecx, dword [ebp - 0x68]
inc ecx
xor edx, edx
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push ebx
mov ecx, dword [ebp - 0x80]
call fcn.005a2394
test eax, eax
je 0x5a4b40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x10
je 0x5a4b58
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0xf
jne 0x5a4b76
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx + 1]
mov dword [ebp - 0x148], ecx
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [ebp - 0x14c], edx
jmp 0x5a4b85
or ecx, 0xffffffff
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], esi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x5a5662
mov edx, dword [ebp - 0x1c]
dec edx
je 0x5a4ba3
or dword [ebx + 0x44], 1
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x5a4bf8
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x5a4bc4
mov dl, byte [ebp - 0x10]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x5a4d57
mov ecx, dword [ebp - 0x1c]
dec ecx
jne 0x5a4bd7
mov al, byte [ebp - 0x10]
add al, 0x23
mov byte [esi], al
inc esi
jmp 0x5a4d57
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x5a4d57
mov edx, dword [ebp - 0x18]
dec edx
jne 0x5a4c47
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x5a4c11
mov al, byte [ebp - 0x10]
add al, 0x21
mov byte [esi], al
inc esi
jmp 0x5a4d57
mov esi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
dec eax
je 0x5a5662
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
dec ecx
sar ecx, 8
mov byte [esi], cl
mov cl, byte [ebp - 0x1c]
add cl, 0xff
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x5a4d57
mov al, byte [ebp - 0x14]
add al, 0x27
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x18]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x18]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x1c]
test eax, eax
jge 0x5a4cc6
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5a4c98
cmp edi, 0x80
jl 0x5a4c98
mov ecx, edi
lea eax, [ebp - 0x90]
and ecx, 7
push ecx
push eax
push esi
call fcn.005a0c60
add esp, 0xc
mov edx, edi
and edx, 7
add esi, edx
jmp 0x5a4cb9
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x5a4cb9
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x10]
add al, 0x1f
mov byte [esi], al
inc esi
jmp 0x5a4d57
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp edx, eax
je 0x5a4d57
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5a4d02
cmp edi, 0x80
jl 0x5a4d02
mov ecx, edi
and ecx, 7
push ecx
lea ecx, [ebp - 0x90]
push ecx
push esi
call fcn.005a0c60
add esp, 0xc
mov eax, edi
and eax, 7
add esi, eax
jmp 0x5a4d07
mov edx, edi
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x148]
test ecx, ecx
jl 0x5a4d23
mov al, byte [ebp - 0x148]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x14c]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sub dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
dec eax
jne 0x5a4d3a
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [esi], dl
inc esi
jmp 0x5a4d57
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a4d83
cmp edi, 0x80
jl 0x5a4d83
mov eax, edi
lea edx, [ebp - 0x90]
and eax, 7
push eax
push edx
push esi
call fcn.005a0c60
add esp, 0xc
and edi, 7
add esi, edi
jmp 0x5a4d88
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x5a5480
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
jmp 0x5a5480
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x4e
je 0x5a4de1
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x4f
je 0x5a4de1
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x50
je 0x5a4de1
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x51
jne 0x5a4e89
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x5a4df0
mov esi, dword [ebp - 0x70]
jmp 0x5a5662
mov eax, dword [ebp - 0x1c]
dec eax
je 0x5a4dfa
or dword [ebx + 0x44], 1
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x5a4e15
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x5a4e15
mov cl, byte [ebp - 0x10]
add cl, 0x46
mov byte [esi], cl
inc esi
jmp 0x5a5480
mov eax, dword [ebp - 0x18]
dec eax
jne 0x5a4e2f
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x5a4e2f
mov cl, byte [ebp - 0x10]
add cl, 0x48
mov byte [esi], cl
inc esi
jmp 0x5a5480
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x5a4e4a
mov edx, dword [ebp - 0x1c]
dec edx
jne 0x5a4e4a
mov cl, byte [ebp - 0x10]
add cl, 0x4a
mov byte [esi], cl
inc esi
jmp 0x5a5480
mov al, byte [ebp - 0x10]
add al, 0x4c
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x18]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x18]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x5a4e71
xor edx, edx
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x5a5480
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5e
je 0x5a4ebd
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5f
je 0x5a4ebd
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
je 0x5a4ebd
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x60
jne 0x5a5462
xor eax, eax
xor edx, edx
mov dword [ebp - 0x154], eax
mov edi, esi
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x70]
sub edi, eax
movzx ecx, byte [ecx]
cmp ecx, 0x60
jne 0x5a4efa
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0x66
jne 0x5a4efa
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x37
jmp 0x5a6ea3
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x5a4f48
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x15c]
xor eax, eax
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
or eax, edx
add dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x15c]
mov cl, byte [eax]
cmp ecx, 0x55
jne 0x5a4f09
mov ecx, esi
mov eax, dword [ebp - 0x15c]
sub ecx, eax
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x5a503f
mov ecx, dword [ebp - 0x1c]
dec ecx
jg 0x5a4fa8
mov byte [esi], 0
push ebx
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x80]
mov edx, 1
mov eax, dword [ebp - 0x70]
call fcn.005a21f0
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
inc eax
push eax
call fcn.005a0c7c
add esp, 0xc
inc esi
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x5a4f96
mov ecx, dword [ebp - 0x70]
mov byte [ecx], 0x6f
jmp 0x5a5662
mov edx, dword [ebp - 0x70]
mov al, byte [ebp - 0x10]
add al, 0x67
mov byte [edx], al
inc dword [ebp - 0x70]
jmp 0x5a5037
mov byte [esi], 0
push ebx
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x80]
mov edx, 4
mov eax, dword [ebp - 0x70]
call fcn.005a21f0
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
add eax, 4
push eax
call fcn.005a0c7c
mov eax, dword [ebp - 0x70]
mov dl, byte [ebp - 0x10]
add dl, 0x67
add esp, 0xc
mov byte [eax], dl
add esi, 4
inc dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
mov byte [edx], 0x5e
inc dword [ebp - 0x70]
mov ecx, dword [ebp - 0x158]
test ecx, ecx
jne 0x5a4ffc
xor ecx, ecx
jmp 0x5a5007
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x70]
sar ecx, 8
mov byte [eax], cl
mov eax, dword [ebp - 0x70]
mov dl, byte [ebp - 0x160]
and dl, 0xff
mov byte [eax + 1], dl
add dword [ebp - 0x70], 2
dec dword [ebp - 0x1c]
jmp 0x5a517a
mov edx, dword [ebp - 0x18]
dec edx
jle 0x5a516d
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x5a50b8
mov ecx, dword [ebp - 0x18]
dec ecx
imul ecx, dword [ebp - 0x50]
mov dword [ebp - 0x164], ecx
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x220], eax
fild dword [ebp - 0x220]
fild dword [ebp - 0x50]
fmulp st(1)
fld qword [0x5a6eb8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x5a509a
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x164]
cmp ecx, edx
jge 0x5a50a8
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x5a6ea3
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x164]
add dword [ecx], eax
jmp 0x5a516d
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x5a50cc
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jge 0x5a50cc
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x150], 1
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp edx, eax
jge 0x5a516d
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x168], edx
push edi
mov ecx, dword [ebp - 0x70]
push ecx
push esi
call fcn.005a0c60
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x168]
cmp eax, edx
jae 0x5a514b
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebx + 0x20]
add ecx, edi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
add eax, 2
mov ecx, dword [ebp - 0x168]
cmp eax, ecx
jb 0x5a510b
mov eax, dword [ebp - 0x168]
add esi, edi
mov dword [ebp - 0x78], eax
inc dword [ebp - 0x150]
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jl 0x5a50e7
mov edx, dword [ebp - 0x1c]
test edx, edx
jle 0x5a517a
mov ecx, dword [ebp - 0x18]
sub dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
test eax, eax
jl 0x5a53a0
mov edx, dword [ebp + 8]
test edx, edx
je 0x5a5201
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jle 0x5a5201
mov eax, dword [ebp - 0x50]
add eax, 7
imul dword [ebp - 0x1c]
add eax, 0xfffffffa
mov dword [ebp - 0x16c], eax
fild dword [ebp - 0x1c]
mov edx, dword [ebp - 0x50]
add edx, 7
mov dword [ebp - 0x224], edx
fild dword [ebp - 0x224]
fmulp st(1)
fld qword [0x5a6eb8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x5a51e3
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov edi, dword [edx]
sub ecx, edi
mov eax, dword [ebp - 0x16c]
cmp ecx, eax
jge 0x5a51f1
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x5a6ea3
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x16c]
add dword [ecx], edi
jmp 0x5a531b
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x150]
test edx, edx
jl 0x5a531b
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x170], ecx
mov cl, byte [ebp - 0x10]
add cl, 0x67
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x5a5277
mov byte [esi], 0x5e
inc esi
mov edx, dword [ebp - 0x158]
test edx, edx
jne 0x5a5247
xor ecx, ecx
jmp 0x5a5251
mov ecx, esi
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x158], esi
mov edx, dword [ebp - 0x174]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x174]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
push edi
mov eax, dword [ebp - 0x70]
push eax
push esi
call fcn.005a0c60
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x170]
cmp eax, edx
jae 0x5a52fc
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x150]
add ecx, edi
test edx, edx
je 0x5a52b3
mov edx, 4
jmp 0x5a52b8
mov edx, 1
add ecx, edx
mov edx, dword [ebx + 0x20]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebp - 0x150]
test edx, edx
je 0x5a52de
mov dl, 4
jmp 0x5a52e0
mov dl, 1
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
add eax, 2
mov ecx, dword [ebp - 0x170]
cmp eax, ecx
jb 0x5a5292
mov eax, dword [ebp - 0x170]
add esi, edi
mov dword [ebp - 0x78], eax
dec dword [ebp - 0x150]
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jge 0x5a5219
mov eax, dword [ebp - 0x158]
test eax, eax
je 0x5a5480
mov eax, esi
mov edx, dword [ebp - 0x158]
sub eax, edx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x178]
test ecx, ecx
jne 0x5a535a
xor ecx, ecx
jmp 0x5a5368
mov ecx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x178]
sub ecx, edi
mov dword [ebp - 0x158], ecx
mov byte [esi], 0x55
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
mov eax, dword [ebp - 0x158]
test eax, eax
jne 0x5a5329
jmp 0x5a5480
mov eax, dword [ebp - 0x154]
mov edx, esi
sub edx, eax
xor ecx, ecx
mov dword [ebp - 0x17c], edx
xor eax, eax
mov edx, dword [ebp - 0x17c]
mov edi, dword [ebp - 0x17c]
mov cl, byte [edx + 1]
mov al, byte [edi + 2]
shl ecx, 8
mov edx, dword [ebp - 0x17c]
or ecx, eax
sub edx, ecx
mov dword [ebp - 0x180], edx
mov edi, dword [ebp - 0x17c]
mov cl, byte [ebp - 0x10]
add cl, 0x56
mov byte [edi], cl
mov eax, dword [ebp + 8]
test eax, eax
jne 0x5a5480
mov edx, dword [ebp - 0x180]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5d
je 0x5a5480
mov ecx, dword [ebp - 0x180]
mov dword [ebp - 0x184], ecx
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x184]
call fcn.005a1e78
test eax, eax
je 0x5a5430
mov ecx, dword [ebp - 0x180]
add byte [ecx], 3
jmp 0x5a5480
mov eax, dword [ebp - 0x184]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
mov eax, dword [ebp - 0x184]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
add dword [ebp - 0x184], edx
mov edx, dword [ebp - 0x184]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x54
je 0x5a540d
jmp 0x5a5480
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x6d
je 0x5a5662
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xb
jmp 0x5a6ea3
mov edx, dword [ebp - 0x9c]
test edx, edx
je 0x5a5662
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx]
cmp ecx, 0x27
je 0x5a54b1
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x41
je 0x5a54b1
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x34
jne 0x5a54f4
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x41
jne 0x5a54de
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0x10
je 0x5a54d7
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 3]
cmp eax, 0xf
jne 0x5a54de
mov edx, 2
jmp 0x5a54e0
xor edx, edx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [eax]
xor eax, eax
mov al, byte [ecx + 0x6500b8]
add edx, eax
add dword [ebp - 0x5c], edx
mov edx, esi
mov ecx, dword [ebp - 0x5c]
sub edx, ecx
mov dword [ebp - 0x188], edx
mov ecx, dword [ebp - 0x188]
test ecx, ecx
jle 0x5a5662
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
add edx, 0xffffffe1
cmp edx, 0x20
ja case.0x5a5528.31
mov dl, byte [edx + 0x5a552f]
jmp dword [edx*4 + 0x5a5550]
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x28
jmp 0x5a5662
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x29
jmp 0x5a5662
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x2a
jmp 0x5a5662
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2b
jmp 0x5a5662
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x42
jmp 0x5a5662
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x43
jmp 0x5a5662
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x44
jmp 0x5a5662
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x45
jmp 0x5a5662
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x35
jmp 0x5a5662
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x36
jmp 0x5a5662
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x37
jmp 0x5a5662
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x38
jmp 0x5a5662
mov ecx, dword [ebp - 0x188]
push ecx
mov eax, dword [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x5c]
add edx, 3
push edx
call fcn.005a0c7c
add dword [ebp - 0x188], 3
mov ecx, dword [ebp - 0x5c]
add esi, 3
add esp, 0xc
mov byte [ecx], 0x5d
mov byte [esi], 0x55
inc esi
mov eax, dword [ebp - 0x188]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x188]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x5c]
sar ecx, 8
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x5c]
mov dl, byte [ebp - 0x188]
and dl, 0xff
mov byte [eax + 2], dl
xor edx, edx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x40]
or dword [ebx + 0x48], ecx
jmp 0x5a6e9b
mov ecx, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x20], 0x5f
mov edx, dword [ebx + 0x20]
xor ecx, ecx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0xa8], ecx
inc dword [ebp - 0x68]
xor edx, edx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp edx, 0x2a
jne 0x5a57c0
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
je 0x5a57c0
mov dword [ebp - 0x190], str.ACCEPT
inc dword [ebp - 0x68]
xor eax, eax
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x70], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 2
jne 0x5a56db
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jne 0x5a5708
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3b
jmp 0x5a6ea3
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5a5722
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3c
jmp 0x5a6ea3
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x194]
sub edx, eax
xor edi, edi
mov dword [ebp - 0x18c], edx
jmp 0x5a5796
mov eax, dword [edi*8 + 0x64f128]
mov edx, dword [ebp - 0x18c]
cmp eax, edx
jne 0x5a5787
mov ecx, dword [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x190]
push ecx
mov eax, dword [ebp - 0x194]
push eax
call fcn.005a0cb4
add esp, 0xc
test eax, eax
jne 0x5a5787
mov dl, byte [edi*8 + 0x64f12c]
xor eax, eax
mov byte [esi], dl
mov cl, byte [esi]
inc esi
mov al, cl
cmp eax, 0x6e
jne 0x5a57a0
mov dword [ebx + 0x4c], 1
jmp 0x5a57a0
mov edx, dword [edi*8 + 0x64f128]
inc edx
add dword [ebp - 0x190], edx
inc edi
mov ecx, dword [0x64f160]
cmp edi, ecx
jl 0x5a5737
mov eax, dword [0x64f160]
cmp edi, eax
jl 0x5a6e9b
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x5a6ea3
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3f
jne 0x5a6727
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x5a585c
je 0x5a58e6
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x5a57f1.34
jmp dword [ecx*4 + 0x5a57f8]
cmp ecx, 0x43
jg 0x5a5883
je 0x5a5e59
sub ecx, 0x3c
je 0x5a5ded
dec ecx
je 0x5a5db6
dec ecx
je 0x5a5e4a
jmp case.0x5a57f1.34
sub ecx, 0x50
je 0x5a5f11
sub ecx, 2
je 0x5a62f2
sub ecx, 0x2a
je 0x5a58dc
jmp case.0x5a57f1.34
inc dword [ebp - 0x68]
jmp 0x5a58a7
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x5a58bc
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
jne 0x5a58a4
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x5a6e9b
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x12
jmp 0x5a6ea3
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x5a6754
mov dword [ebp - 0x20], 0x60
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3f
jne 0x5a593c
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x3d
je 0x5a6754
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x21
je 0x5a6754
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3c
je 0x5a6754
mov byte [esi + 3], 0x64
mov dword [ebp - 0xc0], 3
mov dword [ebp - 0xbc], 0xffffffff
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x52
jne 0x5a5982
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x26
jne 0x5a5982
mov dword [ebp - 0xcc], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [esi + 3], 0x65
jmp 0x5a59ec
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3c
jne 0x5a599e
mov dword [ebp - 0xcc], 0x3e
inc dword [ebp - 0x68]
jmp 0x5a59ec
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x27
jne 0x5a59ba
mov dword [ebp - 0xcc], 0x27
inc dword [ebp - 0x68]
jmp 0x5a59ec
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2d
je 0x5a59dc
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2b
jne 0x5a59ec
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + edx], 0x10
jne 0x5a5a0e
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1c
jmp 0x5a6ea3
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x5a5a62
mov eax, dword [ebp - 0xb8]
test eax, eax
jl 0x5a5a5f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x64fbbd], 4
je 0x5a5a56
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xb8]
add eax, eax
movzx edx, byte [edx]
lea eax, [eax + eax*4]
add eax, edx
add eax, 0xffffffd0
jmp 0x5a5a59
or eax, 0xffffffff
mov dword [ebp - 0xb8], eax
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebx + 0xc]
movzx ecx, byte [ecx]
test byte [eax + ecx], 0x10
jne 0x5a5a24
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub edx, eax
mov dword [ebp - 0x1a4], edx
mov edx, dword [ebp - 0xcc]
test edx, edx
jle 0x5a5a9f
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0xcc]
movzx ecx, byte [ecx]
cmp ecx, eax
jne 0x5a5aae
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5a5abf
dec dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1a
jmp 0x5a6ea3
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5a6754
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
jle 0x5a5b5b
mov eax, dword [ebp - 0xb8]
test eax, eax
jg 0x5a5af0
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x5a6ea3
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x5a5b09
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xb8]
sub eax, edx
inc eax
jmp 0x5a5b14
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x30]
add eax, edx
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jle 0x5a5b31
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jle 0x5a5b3f
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x5a6ea3
mov ecx, dword [ebp - 0xb8]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xb8]
and al, 0xff
mov byte [esi + 5], al
jmp 0x5a6754
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x5a5ba1
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1ac]
push ecx
call fcn.005a0cb4
add esp, 0xc
test eax, eax
je 0x5a5bae
mov eax, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], eax
inc dword [ebp - 0x198]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp edx, eax
jl 0x5a5b6e
mov edx, dword [ebp - 0x198]
mov ecx, dword [ebx + 0x28]
cmp edx, ecx
jge 0x5a5bf7
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b0]
xor eax, eax
movzx edx, byte [edx + 1]
mov al, byte [ecx]
shl eax, 8
or eax, edx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x5a6754
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.005a1940
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x5a5c3c
mov edx, dword [ebp - 0x198]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0x198]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x5a6754
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
je 0x5a5c59
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x5a6ea3
mov edx, dword [ebp - 0x1ac]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x52
jne 0x5a5d25
xor eax, eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x198], 1
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp edx, eax
jge 0x5a5cf1
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x198]
movzx ecx, byte [edx + ecx]
test byte [ecx + 0x64fbbd], 4
jne 0x5a5cb5
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x5a6ea3
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0xb8]
movzx edx, byte [edx + eax]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp ecx, eax
jl 0x5a5c8e
mov edx, dword [ebp - 0xb8]
test edx, edx
jne 0x5a5d05
mov dword [ebp - 0xb8], 0xffff
mov byte [esi + 3], 0x65
mov ecx, dword [ebp - 0xb8]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xb8]
and al, 0xff
mov byte [esi + 5], al
jmp 0x5a6754
mov edx, dword [ebp - 0x1a4]
cmp edx, 6
jne 0x5a5d5d
push 6
push str.DEFINE
mov ecx, dword [ebp - 0x1ac]
push ecx
call fcn.005a0cb4
add esp, 0xc
test eax, eax
jne 0x5a5d5d
mov byte [esi + 3], 0x66
mov dword [ebp - 0xc0], 1
jmp 0x5a6754
mov eax, dword [ebp - 0xb8]
test eax, eax
jle 0x5a5d91
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp edx, eax
jg 0x5a5d91
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x5a6754
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x5a5da2
mov edx, 0x23
jmp 0x5a5da7
mov edx, 0xf
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x5a6ea3
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x5a6754
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx]
cmp ecx, 0x29
jne 0x5a5de1
mov byte [esi], 0x6d
inc esi
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x5a6e9b
mov dword [ebp - 0x20], 0x59
jmp 0x5a6754
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x5a5e0f
sub cl, 0x1c
je 0x5a5dff
jmp 0x5a5e1f
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x5a6754
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x5a6754
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + edx], 0x10
jne case.0x5a57f1.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x5a6ea3
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x5a6754
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x4c], 1
mov byte [esi], 0x53
inc esi
xor ecx, ecx
mov dword [ebp - 0x1b4], ecx
jmp 0x5a5e8e
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x68]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0x1b4], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x64fbbd], 4
jne 0x5a5e71
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5a5ebb
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x27
jmp 0x5a6ea3
mov edx, dword [ebp - 0x1b4]
cmp edx, 0xff
jle 0x5a5ed7
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x5a6ea3
mov dl, byte [ebp - 0x1b4]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebx + 0x18]
sub ecx, edi
inc ecx
sar ecx, 8
mov byte [esi], cl
mov eax, dword [ebp - 0x68]
mov edx, dword [ebx + 0x18]
sub eax, edx
inc eax
and al, 0xff
mov byte [esi + 1], al
mov byte [esi + 2], 0
mov byte [esi + 3], 0
add esi, 4
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x5a6e9b
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3d
je 0x5a5f2c
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3e
jne 0x5a5f53
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3e
sete cl
and ecx, 1
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xcc], 0x29
jmp 0x5a617d
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
je case.0x5a57f1.39
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x29
jmp 0x5a6ea3
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x5a5f80
mov ecx, 0x3e
jmp 0x5a5f85
mov ecx, 0x27
mov dword [ebp - 0xcc], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x5a5f9c
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x5a5f99
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub edx, eax
mov dword [ebp - 0x1a4], edx
mov edx, dword [ebp + 8]
test edx, edx
je 0x5a603d
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xcc]
movzx ecx, byte [ecx]
cmp ecx, eax
je 0x5a5fe2
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2a
jmp 0x5a6ea3
mov ecx, dword [ebx + 0x28]
cmp ecx, 0x2710
jl 0x5a5ffb
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x31
jmp 0x5a6ea3
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov eax, dword [ebx + 0x2c]
cmp edx, eax
jle 0x5a615e
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov dword [ebx + 0x2c], edx
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x5a615e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x5a6ea3
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x5a60fd
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1b0]
add eax, 2
push eax
mov edx, dword [ebp - 0x1ac]
push edx
call fcn.005a0cc8
add esp, 0xc
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
jne 0x5a60b7
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1a4]
mov cl, byte [eax + edx + 2]
test cl, cl
jne 0x5a60ad
test byte [ebp - 0x46], 8
jne 0x5a60b7
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x2b
jmp 0x5a6ea3
mov dword [ebp - 0x1b8], 0xffffffff
mov edx, dword [ebp - 0x1b8]
test edx, edx
jge 0x5a60ee
mov ecx, dword [ebx + 0x28]
mov eax, dword [ebp - 0x198]
sub ecx, eax
imul ecx, dword [ebx + 0x2c]
push ecx
mov edx, dword [ebp - 0x1b0]
push edx
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebx + 0x2c]
add ecx, eax
push ecx
call fcn.005a0c7c
add esp, 0xc
jmp 0x5a610e
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x5a6053
mov edx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x1b0]
inc edx
sar edx, 8
mov byte [eax], dl
mov dl, byte [ebx + 0x30]
mov ecx, dword [ebp - 0x1b0]
inc edx
and dl, 0xff
mov byte [ecx + 1], dl
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
call fcn.005a0c60
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
add esp, 0xc
mov byte [ecx + eax + 2], 0
inc dword [ebp - 0x68]
inc dword [ebx + 0x28]
jmp 0x5a6736
mov dword [ebp - 0xcc], 0x29
mov dword [ebp - 0xa4], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], edx
jmp 0x5a618e
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x5a618b
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub ecx, eax
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp + 8]
test edx, edx
je 0x5a6213
mov ecx, dword [ebp - 0x1a4]
test ecx, ecx
jne 0x5a61ce
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3e
jmp 0x5a6ea3
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x5a61ed
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2a
jmp 0x5a6ea3
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x5a6206
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x5a6ea3
xor edx, edx
mov dword [ebp - 0xb8], edx
jmp 0x5a62df
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], ecx
xor eax, eax
mov dword [ebp - 0x198], eax
jmp 0x5a626d
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
call fcn.005a0cb4
add esp, 0xc
test eax, eax
jne 0x5a625e
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
mov dl, byte [edx + eax + 2]
test dl, dl
je 0x5a627a
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x5a6226
mov edx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp edx, eax
jge 0x5a62a9
mov edx, dword [ebp - 0x1b0]
mov edi, dword [ebp - 0x1b0]
xor ecx, ecx
xor eax, eax
mov cl, byte [edx]
mov al, byte [edi + 1]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb8], ecx
jmp 0x5a62df
test byte [ebp - 0x48], 8
setne dl
and edx, 1
push edx
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.005a1940
mov dword [ebp - 0xb8], eax
test eax, eax
jg 0x5a62df
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x5a6ea3
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
jne 0x5a642a
jmp 0x5a6c1b
inc dword [ebp - 0x68]
mov dword [ebp - 0xcc], 0x29
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xbc], eax
cmp eax, 0x2b
jne 0x5a6334
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x64fbbd], 4
jne 0x5a6356
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x5a6ea3
mov edx, dword [ebp - 0xbc]
cmp edx, 0x2d
jne 0x5a6356
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
test byte [ecx + 0x64fbbd], 4
je case.0x5a57f1.34
inc dword [ebp - 0x68]
xor eax, eax
mov dword [ebp - 0xb8], eax
jmp 0x5a6380
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x68]
add edx, edx
xor ecx, ecx
mov cl, byte [eax]
lea edx, [edx + edx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x64fbbd], 4
jne 0x5a6360
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp edx, eax
je 0x5a63af
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x5a6ea3
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x5a63fe
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x5a63d2
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3a
jmp 0x5a6ea3
mov edx, dword [ebx + 0x30]
mov eax, dword [ebp - 0xb8]
sub edx, eax
inc edx
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xb8]
test edx, edx
jg 0x5a642a
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x5a6ea3
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2b
jne 0x5a642a
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x5a6421
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x5a6ea3
mov ecx, dword [ebx + 0x30]
add dword [ebp - 0xb8], ecx
mov dword [ebp - 0x70], esi
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5a6515
mov byte [esi], 0
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
je 0x5a6465
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x14]
call fcn.005a1ce4
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
test ecx, ecx
jne 0x5a64d3
test byte [ebp - 0x48], 8
setne al
and eax, 1
xor edx, edx
push eax
mov eax, ebx
mov ecx, dword [ebp - 0xb8]
call fcn.005a1940
test eax, eax
jge 0x5a649b
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x5a6ea3
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0xb8]
add edx, ecx
lea ecx, [esi + 4]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x20]
sub ecx, eax
sar ecx, 8
mov byte [edx], cl
lea ecx, [esi + 4]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x20]
sub ecx, eax
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
jmp 0x5a6515
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1bc]
xor eax, eax
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
shl eax, 8
or eax, edx
jne 0x5a6515
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.005a2110
test eax, eax
je 0x5a6515
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x28
jmp 0x5a6ea3
mov byte [esi], 0x5d
mov byte [esi + 1], 0
mov byte [esi + 2], 6
add esi, 3
mov byte [esi], 0x52
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x14]
sub ecx, eax
sar ecx, 8
mov byte [esi + 1], cl
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x14]
sub edx, eax
and dl, 0xff
mov byte [esi + 2], dl
add esi, 3
mov byte [esi], 0x55
mov byte [esi + 1], 0
mov byte [esi + 2], 6
mov dword [ebp - 0x50], 9
add esi, 3
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5a6e9b
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x5a6e9b
xor ecx, ecx
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a8], eax
jmp 0x5a6645
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x69
jg 0x5a65be
je 0x5a65ef
sub ecx, 0x2d
je 0x5a65cf
sub ecx, 0x1d
je 0x5a65dd
sub ecx, 0xb
je 0x5a661b
sub ecx, 3
je 0x5a6629
jmp 0x5a6634
sub ecx, 0x6d
je 0x5a65fa
sub ecx, 6
je 0x5a6605
sub ecx, 5
je 0x5a6610
jmp 0x5a6634
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x1a8], eax
jmp 0x5a6645
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x5a6645
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 1
jmp 0x5a6645
mov eax, dword [ebp - 0x1a8]
or dword [eax], 2
jmp 0x5a6645
mov edx, dword [ebp - 0x1a8]
or dword [edx], 4
jmp 0x5a6645
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 8
jmp 0x5a6645
mov eax, dword [ebp - 0x1a8]
or dword [eax], 0x200
jmp 0x5a6645
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x40
jmp 0x5a6645
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x5a6ea3
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5a6661
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jne 0x5a6597
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x19c]
or edx, eax
mov ecx, dword [ebp - 0x1a0]
not ecx
and edx, ecx
mov dword [ebp - 0xb4], edx
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x5a671b
mov eax, dword [ebx + 0x14]
add eax, 3
cmp esi, eax
jne 0x5a66b2
mov edx, dword [ebp + 8]
test edx, edx
je 0x5a66a7
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
cmp eax, 6
jne 0x5a66b2
mov edx, dword [ebp - 0xb4]
mov dword [ebx + 0x40], edx
jmp 0x5a6703
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x5a66d5
mov byte [esi], 0x19
inc esi
mov dl, byte [ebp - 0xb4]
and dl, 7
mov byte [esi], dl
inc esi
test byte [ebp - 0xb3], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
test byte [ebp - 0xb4], 1
je 0x5a66fe
mov edx, 0x100
jmp 0x5a6700
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 4]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x5a6e9b
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x5a6754
test byte [ebp - 0x47], 0x10
je 0x5a6736
mov dword [ebp - 0x20], 0x5e
jmp 0x5a6754
inc dword [ebx + 0x30]
mov ecx, dword [ebx + 0x30]
sar ecx, 8
mov byte [esi + 3], cl
mov al, byte [ebx + 0x30]
and al, 0xff
mov byte [esi + 4], al
mov dword [ebp - 0xc0], 2
mov edx, dword [ebp - 0x20]
cmp edx, 0x5d
jl 0x5a6760
mov ecx, esi
jmp 0x5a6762
xor ecx, ecx
mov dword [ebp - 0x70], ecx
xor ecx, ecx
mov al, byte [ebp - 0x20]
mov byte [esi], al
mov dword [ebp - 0x5c], esi
mov edx, dword [ebx + 0x48]
lea eax, [ebp - 0x68]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x50], ecx
push eax
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x5a
je 0x5a6794
mov eax, dword [ebp - 0x20]
cmp eax, 0x5b
je 0x5a6794
xor edx, edx
jmp 0x5a6799
mov edx, 1
push edx
lea edx, [ebp - 0xc8]
mov ecx, dword [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
push eax
push edx
push ecx
mov eax, dword [ebp + 0x10]
push eax
push ebx
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5a67c6
xor ecx, ecx
jmp 0x5a67c9
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and edx, 7
call fcn.005a6ec0
test eax, eax
je 0x5a6ea3
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x60
jne 0x5a689b
mov eax, dword [ebp + 8]
test eax, eax
jne 0x5a689b
mov dword [ebp - 0x1c0], esi
xor edx, edx
mov dword [ebp - 0x1c4], edx
inc dword [ebp - 0x1c4]
xor eax, eax
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
shl eax, 8
or eax, edx
add dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x1c0]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x55
jne 0x5a680b
xor ecx, ecx
mov cl, byte [esi + 3]
cmp ecx, 0x66
jne 0x5a686a
mov eax, dword [ebp - 0x1c4]
dec eax
jle 0x5a6861
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x36
jmp 0x5a6ea3
mov dword [ebp - 0x20], 0x66
jmp 0x5a689b
mov ecx, dword [ebp - 0x1c4]
cmp ecx, 2
jle 0x5a6883
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1b
jmp 0x5a6ea3
mov edx, dword [ebp - 0x1c4]
dec edx
jne 0x5a689b
or ecx, 0xffffffff
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc8], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x5a68b5
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x5a6ea3
mov edx, dword [ebp + 8]
test edx, edx
je 0x5a690c
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
mov edi, 0x7fffffeb
add edx, 0xfffffffa
mov eax, dword [ecx]
sub edi, eax
cmp edi, edx
jge 0x5a68e0
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x5a6ea3
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffa
add dword [eax], ecx
mov byte [esi], 0x5e
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
mov byte [esi], 0x55
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
jmp 0x5a6e9b
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x66
je 0x5a6e9b
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0x5d
jl 0x5a69a9
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5a6968
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jl 0x5a6958
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x64], 1
jmp 0x5a695f
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x5a698d
mov edx, dword [ebp - 0xc8]
test edx, edx
jl 0x5a698d
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jge 0x5a698d
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x44]
or eax, edx
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jl 0x5a6e9b
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x30], eax
jmp 0x5a6e9b
mov edx, dword [ebp - 0x20]
cmp edx, 0x58
jne 0x5a6e9b
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jl 0x5a6e9b
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x30], eax
jmp 0x5a6e9b
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x48]
push ecx
push 0
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.005a0f00
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x5a6ea3
test edi, edi
jge 0x5a6d28
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x5a6a3a
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x5c
jne 0x5a6a2e
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x45
jne 0x5a6a2e
add dword [ebp - 0x68], 2
jmp 0x5a6e9b
mov dword [ebp - 0x60], 1
jmp 0x5a6e9b
mov eax, edi
neg eax
cmp eax, 0x19
je 0x5a6e9b
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5a6a68
mov ecx, edi
neg ecx
cmp ecx, 5
jle 0x5a6a68
mov eax, edi
neg eax
cmp eax, 0x17
jge 0x5a6a68
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov eax, edi
neg eax
mov dword [ebp - 0x38], edx
cmp eax, 0x1b
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
jne 0x5a6b97
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x78], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jne 0x5a6a9d
mov edx, 0x3e
jmp 0x5a6aa2
mov edx, 0x27
mov dword [ebp - 0xcc], edx
xor eax, eax
mov dword [ebp - 0xc0], eax
xor ecx, ecx
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2b
je 0x5a6b5d
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x5a6b5d
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x5a6b0d
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x5a6aff
xor edx, edx
mov dword [ebp - 0x1c8], edx
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
je 0x5a6b21
inc eax
mov dl, byte [eax]
test dl, dl
je 0x5a6b21
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp ecx, edx
jne 0x5a6aea
movzx eax, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp eax, ecx
je 0x5a6b3c
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x39
jmp 0x5a6e9b
mov eax, dword [ebp - 0x1c8]
test eax, eax
je 0x5a6b4e
inc dword [ebp - 0x68]
jmp 0x5a62ff
mov dword [ebp - 0xa4], 1
jmp 0x5a617d
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x5a6b66
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x64fbbd], 4
jne 0x5a6b65
xor ecx, ecx
mov cl, byte [eax]
mov edi, dword [ebp - 0xcc]
cmp ecx, edi
je 0x5a6b8f
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x5a6e9b
inc dword [ebp - 0x68]
jmp 0x5a62ff
mov edx, edi
neg edx
cmp edx, 0x1c
jne 0x5a6c07
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3c
je 0x5a6bc6
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x27
je 0x5a6bc6
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x7b
jne 0x5a6c07
xor edx, edx
mov dword [ebp - 0xa4], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jne 0x5a6be4
mov edx, 0x3e
jmp 0x5a6bfc
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
jne 0x5a6bf7
mov edx, 0x27
jmp 0x5a6bfc
mov edx, 0x7d
mov dword [ebp - 0xcc], edx
jmp 0x5a617d
mov eax, edi
neg eax
cmp eax, 0x1d
jl 0x5a6c8b
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5a6c2a
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x70], esi
mov byte [esi], 0x51
inc esi
mov ecx, dword [ebp - 0xb8]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0xb8]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0xb8]
cmp edx, 0x20
jge 0x5a6c64
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x5a6c69
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x5a6e9b
mov ecx, dword [ebp - 0xb8]
mov dword [ebx + 0x38], ecx
jmp 0x5a6e9b
mov eax, edi
neg eax
cmp eax, 0xf
je 0x5a6c9d
mov edx, edi
neg edx
cmp edx, 0x10
jne 0x5a6d01
mov ecx, dword [ebp + 0x1c]
lea edx, [ebp - 0x1cc]
push ecx
lea ecx, [ebp - 0x1d0]
lea eax, [ebp - 0x68]
call fcn.005a12fc
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x1d4]
test ecx, ecx
jl 0x5a6ea3
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete al
and eax, 1
mov edx, dword [ebp - 0x1cc]
cmp eax, edx
je 0x5a6ce5
mov cl, 0x10
jmp 0x5a6ce7
mov cl, 0xf
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x1d4]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x1d0]
mov byte [esi], dl
inc esi
jmp 0x5a6e9b
mov ecx, edi
neg ecx
cmp ecx, 5
jle 0x5a6d17
mov eax, edi
neg eax
cmp eax, 0x17
jge 0x5a6d17
mov edx, esi
jmp 0x5a6d19
xor edx, edx
mov dword [ebp - 0x70], edx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x5a6e9b
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5a6d49
cmp edi, 0x7f
jle 0x5a6d49
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.005b1f0c
mov dword [ebp - 0xd0], eax
jmp 0x5a6db1
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x5a6db1
mov dword [ebp - 0xd0], 1
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5a6db1
cmp edi, 0xc0
jl 0x5a6db1
jmp 0x5a6d9b
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xd0]
mov cl, byte [edx]
mov byte [ebp + eax - 0xd8], cl
inc dword [ebp - 0xd0]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
and ecx, 0xc0
cmp ecx, 0x80
je 0x5a6d80
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x5a6dbe
mov al, 0x1d
jmp 0x5a6dc0
mov al, 0x1c
mov byte [esi], al
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x1dc], eax
inc esi
mov edx, dword [ebp - 0xd0]
xor edi, edi
cmp edi, edx
jge 0x5a6df7
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [ecx]
mov byte [esi], cl
inc esi
inc edi
inc dword [ebp - 0x1dc]
mov eax, dword [ebp - 0xd0]
cmp edi, eax
jl 0x5a6ddb
xor edx, edx
mov dl, byte [ebp - 0xd8]
cmp edx, 0xd
je 0x5a6e11
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
cmp ecx, 0xa
jne 0x5a6e15
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x5a6e6d
mov dword [ebp - 0x38], 0xffffffff
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0xd0]
dec ecx
je 0x5a6e3a
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x5a6e62
xor edx, edx
mov dl, byte [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
or edx, eax
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0xd0]
dec edx
je 0x5a6e9b
xor ecx, ecx
mov cl, byte [esi - 1]
mov edi, dword [ebx + 0x48]
or ecx, edi
mov dword [ebp - 0x30], ecx
jmp 0x5a6e9b
or eax, 0xffffffff
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
jmp 0x5a6e9b
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0xd0]
dec ecx
je 0x5a6e89
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x5a6e9b
xor edx, edx
mov dl, byte [esi - 1]
mov eax, dword [ebp - 0x3c]
or edx, eax
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
inc dword [ebp - 0x68]
jmp 0x5a2f13
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [edx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18