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

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xfc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x60]
xor eax, eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x24], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x14], eax
mov dword [ebp + 4], eax
mov dword [ebp - 0x64], eax
mov dword [ebp + 0x48], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov ebx, dword [ecx]
mov ecx, dword [ebp + 0x64]
mov esi, dword [ecx]
xor ecx, ecx
inc ecx
mov eax, edx
shr eax, 0xb
and eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, edx
shr eax, 9
and eax, ecx
mov dword [ebp - 0x78], eax
xor eax, ecx
mov dword [ebp - 0x70], eax
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 0x10], eax
mov dword [ebp], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0x2c], eax
mov eax, edx
and eax, ecx
shl eax, 8
mov dword [ebp + 0x28], edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp + 0x50], esi
mov dword [ebp - 0x1c], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x4c], eax
test ecx, ecx
je 0x5a9c97f
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x5a9f0e4
cmp ebx, dword [ebp - 0xc]
jae 0x5a9c929
mov ebx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, ebx
sub ecx, dword [ebp - 0xc]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x5a9f0f2
sub eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x7c]
add eax, ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x5a9c974
cmp eax, dword [ebp - 0x60]
jbe 0x5a9c977
mov esi, dword [ebp - 0x60]
mov edx, eax
mov ecx, ebx
sub ecx, edx
mov eax, esi
call fcn.05a9fd37
mov eax, esi
sub eax, dword [ebp + 0x48]
mov dword [ebp + 0x48], esi
mov esi, dword [ebp + 0x50]
add ebx, eax
jmp 0x5a9c977
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0xc], ebx
jmp 0x5a9c991
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp dword [edi + 0x20], ecx
ja 0x5a9f0e4
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x5a9c9f3
cmp eax, ecx
je 0x5a9c9f3
cmp eax, 0x5c
jne 0x5a9c9b4
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x5a9c9b4
mov dword [ebp + 4], ecx
mov dword [ebp + 0x50], eax
jmp 0x5a9f0d9
cmp dword [ebp - 4], ecx
je 0x5a9c9d0
cmp dword [ebp + 0x7c], ecx
jne 0x5a9c9cc
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.05a9c05f
add esp, 4
and dword [ebp - 4], 0
test dword [ebp + 0x28], 0x4000
je 0x5a9dc1a
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.05a9c03f
mov ebx, eax
jmp 0x5a9dc1a
cmp eax, 0x2a
je 0x5a9ca65
cmp eax, 0x2b
je 0x5a9ca65
cmp eax, 0x3f
je 0x5a9ca65
cmp eax, 0x7b
jne 0x5a9ca13
lea eax, [esi + 1]
call fcn.05a9b64e
test eax, eax
jne 0x5a9ca65
and dword [ebp + 0x40], 0
cmp dword [ebp - 4], 0
je 0x5a9ca42
mov eax, dword [ebp - 0x54]
dec dword [ebp - 0x54]
test eax, eax
jg 0x5a9ca42
cmp dword [ebp + 0x7c], 0
jne 0x5a9ca3e
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.05a9c05f
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp - 4], 0
test byte [ebp + 0x28], 8
je 0x5a9cab8
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x5a9f0d9
mov esi, dword [ebp + 0x50]
cmp ecx, 0x23
jne 0x5a9cab8
jmp 0x5a9cb70
mov dword [ebp + 0x40], 1
jmp 0x5a9ca42
mov ecx, dword [edi + 0x50]
test ecx, ecx
je 0x5a9cb4a
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x5a9cb70
push dword [ebp + 0x1c]
lea edx, [edi + 0x54]
push edx
push eax
push ecx
push esi
call fcn.05abaeb0
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x5a9cb70
mov eax, dword [edi + 0x54]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x5a9f0d9
and dword [ebp + 0x4c], 0
xor edx, edx
test dword [ebp + 0x28], 0x4000
je 0x5a9cade
cmp dword [ebp + 0x40], edx
jne 0x5a9cade
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.05a9c03f
mov esi, dword [ebp + 0x50]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x3f
jg 0x5a9d28f
je 0x5a9d280
sub eax, edx
je 0x5a9d2b9
sub eax, 0x24
je 0x5a9d278
sub eax, 4
je 0x5a9cb98
dec eax
je 0x5a9d2b9
dec eax
je 0x5a9cb8c
dec eax
je 0x5a9cb83
sub eax, 3
jne 0x5a9dc1a
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9cb2a
or dword [ebp + 0x2c], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [ebp], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x28]
shr eax, 2
and al, 1
or al, 0xc
mov dword [ebp + 0x48], ebx
mov byte [ebx], al
jmp 0x5a9dc07
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x5a9cb70
cmp al, byte [edi + 0x58]
jne 0x5a9cb70
cmp ecx, 1
je 0x5a9caa1
mov al, byte [esi + 1]
cmp al, byte [edi + 0x59]
je 0x5a9caa1
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x5a9ca6e
jmp 0x5a9cab4
mov dword [ebp + 0x18], 1
jmp 0x5a9cb8f
mov dword [ebp + 0x18], edx
or dword [ebp + 0x24], 0xffffffff
jmp 0x5a9d32e
mov eax, dword [ebp + 0x28]
inc esi
mov dword [ebp + 0x50], esi
mov cl, byte [esi]
mov dword [ebp + 0x14], eax
mov eax, dword [edi + 0x20]
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x3c], 0x5f
mov dword [ebp - 8], eax
mov dword [ebp + 0x20], edx
cmp cl, 0x2a
jne 0x5a9cc6f
mov edx, dword [edi + 0xc]
lea eax, [esi + 1]
mov dword [ebp + 0x44], eax
movzx eax, byte [eax]
test byte [eax + edx], 2
je 0x5a9cc6f
mov eax, dword [ebp + 0x44]
xor esi, esi
mov dword [ebp + 0x40], str.ACCEPT
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], esi
inc eax
mov dword [ebp + 0x50], eax
movzx ecx, byte [eax]
test byte [ecx + edx], 2
jne 0x5a9cbe8
mov cl, byte [eax]
cmp cl, 0x3a
je 0x5a9f100
cmp cl, 0x29
jne 0x5a9cc61
sub eax, dword [ebp + 0x44]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x20]
cmp eax, dword [esi*8 + 0x5b44b20]
jne 0x5a9cc2a
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x44]
call fcn.05acf215
add esp, 0xc
test eax, eax
je 0x5a9cc43
mov eax, dword [esi*8 + 0x5b44b20]
mov ecx, dword [ebp + 0x40]
inc esi
lea eax, [ecx + eax + 1]
mov dword [ebp + 0x40], eax
cmp esi, 7
jl 0x5a9cc0b
jmp 0x5a9cc58
mov al, byte [esi*8 + 0x5b44b24]
mov byte [ebx], al
inc ebx
cmp al, 0x6e
jne 0x5a9cc58
mov dword [edi + 0x4c], 1
cmp esi, 7
jl 0x5a9f0d9
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x5a9f258
cmp cl, 0x3f
jne 0x5a9d24d
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x5a9cfd5
je 0x5a9d00a
cmp eax, 0x28
jg 0x5a9cfb8
je 0x5a9cd40
sub eax, 0x21
je 0x5a9ccf4
dec eax
dec eax
je 0x5a9ccc5
sub eax, 3
je 0x5a9ccb9
dec eax
je 0x5a9d10d
jmp 0x5a9dde4
mov dword [ebp + 0x4c], 0x29
jmp 0x5a9dd73
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x5a9cce6
cmp al, 0x29
je 0x5a9ccdd
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x5a9cccf
cmp byte [esi], 0
jne 0x5a9f0d9
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x5a9f258
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x5a9cd0a
mov byte [ebx], 0x6d
inc ebx
and dword [ebp + 0x48], 0
jmp 0x5a9f0d9
mov dword [ebp + 0x3c], 0x59
and dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x3c]
mov byte [ebx], al
mov ecx, dword [edi + 0x48]
and dword [ebp - 0x14], 0
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x24], ecx
cmp eax, 0x5a
je 0x5a9def1
cmp eax, 0x5b
je 0x5a9def1
xor eax, eax
jmp 0x5a9def4
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x3c], 0x60
jne 0x5a9cd68
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x5a9dee9
cmp al, 0x21
je 0x5a9dee9
cmp al, 0x3c
je 0x5a9dee9
or dword [ebp + 0x44], 0xffffffff
mov byte [ebx + 3], 0x64
mov esi, dword [ebp + 0x50]
lea eax, [esi + 1]
mov cl, byte [eax]
mov dword [ebp + 0x40], 3
cmp cl, 0x52
jne 0x5a9cd99
add esi, 2
cmp byte [esi], 0x26
jne 0x5a9cd99
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], esi
mov byte [ebx + 3], 0x65
jmp 0x5a9cdcf
cmp cl, 0x3c
jne 0x5a9cda7
mov dword [ebp + 0x4c], 0x3e
jmp 0x5a9cdb3
cmp cl, 0x27
jne 0x5a9cdb8
mov dword [ebp + 0x4c], 0x27
mov dword [ebp + 0x50], eax
jmp 0x5a9cdcf
and dword [ebp + 0x4c], 0
cmp cl, 0x2d
je 0x5a9cdc6
cmp cl, 0x2b
jne 0x5a9cdcf
mov dword [ebp + 0x50], eax
movzx eax, byte [eax]
mov dword [ebp + 0x44], eax
mov esi, dword [ebp + 0x50]
mov eax, dword [edi + 0xc]
inc esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
je 0x5a9f10e
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
xor edx, edx
test byte [eax + ecx], 0x10
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x34], esi
je 0x5a9ce20
test edx, edx
js 0x5a9ce10
test byte [ecx + 0x5b455a0], 4
je 0x5a9ce0d
imul edx, edx, 0xa
lea edx, [edx + ecx - 0x30]
jmp 0x5a9ce10
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [eax + ecx], 0x10
jne 0x5a9cdf7
mov dword [ebp + 0x38], edx
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x4c], 0
mov dword [ebp + 0x30], eax
jle 0x5a9ce3e
movzx eax, byte [esi]
inc esi
mov dword [ebp + 0x50], esi
cmp eax, dword [ebp + 0x4c]
jne 0x5a9f11f
mov al, byte [esi]
inc esi
mov dword [ebp + 0x50], esi
cmp al, 0x29
jne 0x5a9f11f
cmp dword [ebp + 0x7c], 0
jne 0x5a9dee9
xor eax, eax
cmp dword [ebp + 0x44], eax
jle 0x5a9ce99
cmp edx, eax
jle 0x5a9f131
cmp dword [ebp + 0x44], 0x2d
jne 0x5a9ce75
mov ecx, dword [edi + 0x30]
sub ecx, edx
lea edx, [ecx + 1]
jmp 0x5a9ce78
add edx, dword [edi + 0x30]
cmp edx, eax
jle 0x5a9e0a8
cmp edx, dword [edi + 0x34]
jg 0x5a9e0a8
mov eax, edx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], dl
jmp 0x5a9dee9
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x48], eax
cmp dword [edi + 0x28], eax
jle 0x5a9ced3
mov esi, ecx
push dword [ebp + 0x30]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.05acf215
add esp, 0xc
test eax, eax
je 0x5a9ced0
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x44], esi
cmp eax, dword [edi + 0x28]
jl 0x5a9cea9
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jge 0x5a9cefa
mov ecx, dword [ebp + 0x44]
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl eax, 8
or eax, ecx
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x5a9dee9
mov eax, dword [ebp + 0x28]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x30]
mov eax, esi
push dword [ebp + 0x34]
push edi
call fcn.05a9b73b
add esp, 0x10
test eax, eax
jg 0x5a9ceea
xor ecx, ecx
cmp dword [ebp + 0x4c], ecx
jne 0x5a9e0a8
mov edx, dword [ebp + 0x34]
cmp byte [edx], 0x52
jne 0x5a9cf6f
xor esi, esi
inc esi
cmp dword [ebp + 0x30], esi
jle 0x5a9cf56
movzx eax, byte [esi + edx]
test byte [eax + 0x5b455a0], 4
je 0x5a9e0a8
imul ecx, ecx, 0xa
inc esi
lea ecx, [ecx + eax - 0x30]
cmp esi, dword [ebp + 0x30]
jl 0x5a9cf34
test ecx, ecx
jne 0x5a9cf5b
mov ecx, 0xffff
mov eax, ecx
sar eax, 8
mov byte [ebx + 3], 0x65
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
jmp 0x5a9dee9
cmp dword [ebp + 0x30], 6
jne 0x5a9cf99
push 6
push 0x5b456b0
push edx
call fcn.05acf215
add esp, 0xc
test eax, eax
jne 0x5a9cf99
mov byte [ebx + 3], 0x66
mov dword [ebp + 0x40], 1
jmp 0x5a9dee9
mov eax, dword [ebp + 0x38]
test eax, eax
jle 0x5a9cfa9
cmp eax, dword [edi + 0x34]
jle 0x5a9ceea
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x5a9f21c
cmp eax, 0x2b
je 0x5a9d017
cmp eax, 0x2d
je 0x5a9d017
cmp eax, 0x2f
jle 0x5a9dde4
cmp eax, 0x39
jle 0x5a9d017
jmp 0x5a9dde4
sub eax, 0x3c
je 0x5a9d0ea
dec eax
je 0x5a9d0da
dec eax
je 0x5a9d0ca
sub eax, 5
je 0x5a9d061
sub eax, 0xd
je 0x5a9d023
dec eax
dec eax
je 0x5a9d013
sub eax, 0x2a
jne 0x5a9dde4
mov dword [ebp + 0x20], 1
inc esi
mov dword [ebp + 0x50], esi
jmp 0x5a9dee2
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], 0x29
jmp 0x5a9dd9e
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x5a9d04a
cmp dl, 0x3e
je 0x5a9d04a
cmp dl, 0x3c
je 0x5a9d10d
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x5a9f258
xor eax, eax
cmp dl, 0x3e
sete al
mov dword [ebp + 0x4c], 0x29
mov dword [ebp + 0x40], eax
jmp 0x5a9e11d
mov byte [ebx], 0x53
mov esi, dword [ebp + 0x50]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x54], 1
xor ecx, ecx
jmp 0x5a9d07c
imul ecx, ecx, 0xa
lea ecx, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x5b455a0], 4
jne 0x5a9d075
cmp byte [esi], 0x29
jne 0x5a9f13f
cmp ecx, 0xff
jg 0x5a9f14d
mov byte [ebx + 1], cl
mov eax, dword [ebp + 0x50]
sub eax, dword [edi + 0x18]
inc eax
sar eax, 8
mov byte [ebx + 2], al
mov al, byte [ebp + 0x50]
sub al, byte [edi + 0x18]
mov word [ebx + 4], 0
inc al
mov byte [ebx + 3], al
add ebx, 6
jmp 0x5a9cd01
inc esi
mov dword [ebp + 0x3c], 0x5d
mov dword [ebp + 0x50], esi
jmp 0x5a9dee9
mov dword [ebp + 0x3c], 0x58
inc esi
mov dword [ebp + 0x50], esi
jmp 0x5a9cd11
mov al, byte [esi + 1]
cmp al, 0x21
je 0x5a9d244
cmp al, 0x3d
je 0x5a9d235
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x5a9f177
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dl, 0x3c
setne al
dec eax
and eax, 0x17
add eax, 0x27
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x34], esi
je 0x5a9d141
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x5a9d134
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x30], eax
je 0x5a9d18e
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x4c]
jne 0x5a9f15b
cmp dword [edi + 0x28], 0x2710
jge 0x5a9f169
lea ecx, [eax + 3]
cmp ecx, dword [edi + 0x2c]
jle 0x5a9d22c
mov dword [edi + 0x2c], ecx
cmp eax, 0x20
jle 0x5a9d22c
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x5a9f258
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x5a9d1fe
push dword [ebp + 0x30]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.05acac18
add esp, 0xc
test eax, eax
jne 0x5a9d1d7
mov eax, dword [ebp + 0x30]
cmp byte [esi + eax + 2], 0
jne 0x5a9d1d2
test dword [ebp + 0x28], 0x80000
jne 0x5a9d1d9
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x5a9f258
or eax, 0xffffffff
test eax, eax
js 0x5a9d1e9
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jl 0x5a9d19b
jmp 0x5a9d1fe
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
sub ecx, dword [ebp + 0x48]
mov edx, esi
imul ecx, eax
add eax, esi
call fcn.05a9fd37
mov eax, dword [edi + 0x30]
push dword [ebp + 0x30]
inc eax
push dword [ebp + 0x34]
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.05ac9880
mov eax, dword [ebp + 0x30]
mov byte [esi + eax + 2], 0
mov esi, dword [ebp + 0x50]
add esp, 0xc
inc esi
inc dword [edi + 0x28]
mov dword [ebp + 0x50], esi
jmp 0x5a9d25a
mov dword [ebp + 0x3c], 0x5a
add esi, 2
jmp 0x5a9d0e2
mov dword [ebp + 0x3c], 0x5b
jmp 0x5a9d23c
test dword [ebp + 0x28], 0x1000
jne 0x5a9dee2
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 0x5a9dee9
mov byte [ebx], 0x1b
jmp 0x5a9dc04
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x24], 1
jmp 0x5a9d32e
sub eax, 0x5b
je 0x5a9e3c7
dec eax
je 0x5a9dc57
dec eax
je 0x5a9dc0d
dec eax
je 0x5a9dbf1
sub eax, 0x1d
je 0x5a9d2ff
dec eax
jne 0x5a9dc1a
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x2c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x7c]
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], esi
cmp ecx, edx
je 0x5a9d2f7
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0xc]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jl 0x5a9f0f2
sub eax, dword [ebp - 0xc]
add eax, ebx
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x5a9f262
cmp dword [ebp + 0x40], edx
je 0x5a9dc1a
mov edi, dword [ebp + 0x68]
push edi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [esi + 1]
call fcn.05a9b6ae
add esp, 0xc
cmp dword [edi], 0
mov dword [ebp + 0x50], eax
jne 0x5a9f258
mov edi, dword [ebp + 0x78]
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x5a9f189
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x5a9d34c
mov ecx, dword [ebp]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 8], ecx
sub eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x3c], 0
and dword [ebp + 0x34], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x24], eax
mov dword [ebp + 0xc], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x5a9d383
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x50], ecx
jmp 0x5a9d392
cmp al, 0x3f
jne 0x5a9d38f
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x50], ecx
jmp 0x5a9d392
mov eax, dword [ebp - 0x78]
mov cl, byte [edx]
mov dword [ebp + 0x38], eax
cmp cl, 0x1c
je 0x5a9d87d
cmp cl, 0x1d
je 0x5a9d87d
cmp cl, 0x1e
jne 0x5a9d3e7
cmp dword [ebp + 0x34], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x3c], 0xd
mov dword [ebp + 0x4c], eax
jne 0x5a9d8e1
cmp dword [ebp + 0x24], 0
jge 0x5a9d8e1
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x4c]
push 0x1e
jmp 0x5a9d8c8
cmp cl, 0x17
jae 0x5a9d424
cmp dword [ebp + 0x34], 0
movzx eax, cl
mov dword [ebp + 0x3c], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x5a9d8e1
cmp dword [ebp + 0x24], 0
jge 0x5a9d8e1
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push 0
push dword [ebp + 0x4c]
jmp 0x5a9d8c8
cmp cl, 0x4e
je 0x5a9d806
cmp cl, 0x4f
je 0x5a9d806
cmp cl, 0x50
je 0x5a9d806
cmp cl, 0x51
je 0x5a9d806
cmp cl, 0x5e
je 0x5a9d473
cmp cl, 0x5f
je 0x5a9d473
cmp cl, 0x5d
je 0x5a9d473
cmp cl, 0x60
je 0x5a9d473
cmp cl, 0x6d
je 0x5a9dbdf
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x5a9f258
and dword [ebp + 0x30], 0
and dword [ebp + 0x44], 0
mov eax, ebx
sub eax, edx
mov dword [ebp + 0x3c], eax
cmp cl, 0x60
jne 0x5a9d491
cmp byte [edx + 3], 0x66
je 0x5a9f197
cmp dword [ebp + 0x24], 0xffffffff
jne 0x5a9d4b4
mov eax, edx
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x55
jne 0x5a9d499
mov ecx, ebx
sub ecx, eax
mov dword [ebp + 0x30], ecx
cmp dword [ebp + 0x18], 0
jne 0x5a9d55d
cmp dword [ebp + 0x24], 1
push dword [ebp - 8]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x1c]
mov byte [ebx], 0
jg 0x5a9d50e
push 1
push dword [ebp + 0x48]
call fcn.05a9bfaf
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x3c]
lea esi, [edx + 1]
add esp, 0x10
mov eax, esi
call fcn.05a9fd37
inc ebx
cmp dword [ebp + 0x24], 0
jne 0x5a9d4ff
mov eax, dword [ebp + 0x48]
mov byte [eax], 0x6f
jmp 0x5a9dbdf
mov al, byte [ebp + 0x38]
mov ecx, dword [ebp + 0x48]
add al, 0x67
mov byte [ecx], al
mov dword [ebp + 0x48], esi
jmp 0x5a9d54c
push 4
push dword [ebp + 0x48]
call fcn.05a9bfaf
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x3c]
add esp, 0x10
lea eax, [edx + 4]
call fcn.05a9fd37
mov eax, dword [ebp + 0x48]
mov cl, byte [ebp + 0x38]
add cl, 0x67
mov byte [eax], cl
mov byte [eax + 1], 0x5e
add ebx, 4
add eax, 2
mov dword [ebp + 0x44], eax
mov word [eax], 0
add eax, 2
mov dword [ebp + 0x48], eax
dec dword [ebp + 0x24]
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x78]
jmp 0x5a9d634
cmp dword [ebp + 0x18], 1
jle 0x5a9d627
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x5a9d5ae
mov eax, dword [ebp + 0x18]
dec eax
mov dword [ebp + 0x14], eax
fild dword [ebp + 0x14]
imul eax, dword [ebp - 0x14]
fimul dword [ebp - 0x14]
mov dword [ebp + 0x20], eax
fcomp qword [0x5b456a8]
fnstsw ax
test ah, 0x41
je 0x5a9f0f2
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x20]
jl 0x5a9f0f2
mov edx, dword [ebp + 0x20]
add edx, eax
mov dword [ecx], edx
jmp 0x5a9d627
cmp dword [ebp - 0x64], 0
je 0x5a9d5c0
cmp dword [ebp + 8], 0
jge 0x5a9d5c0
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
cmp dword [ebp + 0x18], 1
jle 0x5a9d627
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
dec eax
mov dword [ebp + 0x20], eax
push dword [ebp + 0x3c]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x48]
mov dword [ebp + 0x40], eax
push ebx
call fcn.05ac9880
add esp, 0xc
jmp 0x5a9d611
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
add eax, dword [ebp + 0x3c]
mov ecx, dword [edi + 0x20]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x3c]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
add esi, 2
cmp esi, dword [ebp + 0x40]
jb 0x5a9d5e7
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x3c]
dec dword [ebp + 0x20]
mov dword [ebp - 8], esi
jne 0x5a9d5d0
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x24]
test ecx, ecx
jle 0x5a9d636
sub ecx, dword [ebp + 0x18]
mov dword [ebp + 0x24], ecx
test ecx, ecx
js 0x5a9d799
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x5a9d687
test ecx, ecx
jle 0x5a9d687
mov eax, dword [ebp - 0x14]
add eax, 7
mov dword [ebp + 0x14], eax
fild dword [ebp + 0x14]
imul ecx, eax
fimul dword [ebp + 0x24]
add ecx, 0xfffffffa
fcomp qword [0x5b456a8]
fnstsw ax
test ah, 0x41
je 0x5a9f0f2
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x5a9f0f2
add ecx, eax
mov dword [edx], ecx
jmp 0x5a9d74b
lea eax, [ecx - 1]
mov dword [ebp + 0x40], eax
test eax, eax
js 0x5a9d74b
mov al, byte [ebp + 0x38]
add al, 0x67
mov byte [ebp - 0x15], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp - 0x15]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x40], 0
mov dword [ebp + 0x20], esi
je 0x5a9d6d0
mov eax, dword [ebp + 0x44]
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 + 0x44], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
push dword [ebp + 0x3c]
push dword [ebp + 0x48]
push ebx
call fcn.05ac9880
mov eax, dword [ebp - 8]
add esp, 0xc
cmp eax, esi
jae 0x5a9d739
mov esi, dword [ebp + 0x40]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x40], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp - 0xd], cl
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [edi + 0x20]
add ecx, esi
add ecx, dword [ebp + 0x3c]
add eax, 2
sar ecx, 8
mov byte [edx], cl
mov cl, byte [ebp + 0x3c]
add cl, byte [ebp - 0xd]
mov edx, dword [edi + 0x20]
add cl, byte [eax - 1]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
cmp eax, dword [ebp + 0x20]
jb 0x5a9d702
mov esi, dword [ebp + 0x20]
add ebx, dword [ebp + 0x3c]
dec dword [ebp + 0x40]
mov dword [ebp - 8], esi
jns 0x5a9d69d
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x44], 0
je 0x5a9dada
mov esi, dword [ebp + 0x44]
mov ecx, ebx
sub ecx, esi
inc ecx
mov eax, ebx
sub eax, ecx
movzx edx, byte [eax + 1]
movzx edi, byte [eax + 2]
shl edx, 8
or edx, edi
sub esi, edx
mov dword [ebp + 0x14], edx
neg edx
sbb edx, edx
and esi, edx
mov byte [ebx], 0x55
mov edx, ecx
sar edx, 8
mov byte [ebx + 1], dl
mov byte [ebx + 2], cl
add ebx, 3
mov byte [eax + 1], dl
mov byte [eax + 2], cl
test esi, esi
jne 0x5a9d758
jmp 0x5a9dad7
mov esi, ebx
sub esi, dword [ebp + 0x30]
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
shl eax, 8
or eax, ecx
mov edi, esi
sub edi, eax
mov al, byte [ebp + 0x38]
add al, 0x56
cmp dword [ebp + 0x7c], 0
mov byte [esi], al
jne 0x5a9dad7
cmp byte [edi], 0x5d
je 0x5a9dad7
mov dword [ebp + 0x40], edi
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x40]
call fcn.05a9bcdd
add esp, 0xc
test eax, eax
jne 0x5a9d7fe
mov eax, dword [ebp + 0x40]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
mov dword [ebp + 0x40], eax
je 0x5a9d7cc
jmp 0x5a9dad7
add byte [edi], 3
jmp 0x5a9dad7
cmp dword [ebp + 0x24], 0
jne 0x5a9d813
mov ebx, edx
jmp 0x5a9dbdf
mov ecx, dword [ebp + 0x24]
cmp ecx, 1
je 0x5a9d81f
or dword [edi + 0x44], 1
cmp dword [ebp + 0x18], 0
jne 0x5a9d834
cmp ecx, 0xffffffff
jne 0x5a9d843
add al, 0x46
mov byte [ebx], al
inc ebx
jmp 0x5a9dad7
cmp dword [ebp + 0x18], 1
jne 0x5a9d84c
cmp ecx, 0xffffffff
jne 0x5a9d84c
add al, 0x48
jmp 0x5a9d82c
cmp ecx, 1
jne 0x5a9d84c
add al, 0x4a
jmp 0x5a9d82c
add al, 0x4c
mov byte [ebx], al
mov eax, dword [ebp + 0x18]
mov edx, eax
sar edx, 8
mov byte [ebx + 1], dl
mov byte [ebx + 2], al
cmp ecx, 0xffffffff
jne 0x5a9d86a
and dword [ebp + 0x24], 0
mov ecx, dword [ebp + 0x24]
mov eax, ecx
sar eax, 8
mov byte [ebx + 3], al
mov byte [ebx + 4], cl
add ebx, 5
jmp 0x5a9dad7
cmp dword [ebp + 0x1c], 0
je 0x5a9d88b
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x5a9d8fb
cmp dword [ebp + 0x18], 1
movzx ecx, byte [ebx - 1]
mov dword [ebp + 0x4c], ecx
jle 0x5a9d8a3
mov eax, dword [edi + 0x48]
or eax, ecx
or eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
cmp dword [ebp + 0x34], 0
jne 0x5a9d8e1
cmp dword [ebp + 0x24], 0
jge 0x5a9d8e1
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x48]
movzx eax, byte [eax]
push dword [ebp + 0x4c]
push eax
mov eax, edi
call fcn.05a9c10f
add esp, 0x18
test eax, eax
je 0x5a9d8e1
and dword [ebp + 0x38], 0
mov dword [ebp + 0x34], 1
mov eax, dword [ebp + 0x48]
mov cl, byte [eax]
cmp cl, 0x10
je 0x5a9d921
cmp cl, 0xf
je 0x5a9d921
or dword [ebp + 0x40], 0xffffffff
or dword [ebp + 0x44], 0xffffffff
jmp 0x5a9d92f
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x5a9d8fa
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x6c]
push eax
call fcn.05ac9880
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x5a9d8a3
movzx ecx, byte [eax + 1]
mov dword [ebp + 0x44], ecx
movzx ecx, byte [eax + 2]
mov dword [ebp + 0x40], ecx
cmp dword [ebp + 0x24], 0
mov esi, ebx
mov ebx, eax
je 0x5a9dbdf
mov edx, dword [ebp + 0x24]
cmp edx, 1
je 0x5a9d949
or dword [edi + 0x44], 1
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x3c]
add eax, ecx
cmp dword [ebp + 0x18], 0
mov dword [ebp + 0x38], eax
jne 0x5a9d97d
mov ebx, dword [ebp + 0x48]
cmp edx, 0xffffffff
je 0x5a9da1f
cmp edx, 1
je 0x5a9da7d
add al, 0x25
mov byte [ebx], al
mov eax, edx
mov byte [ebx + 2], dl
jmp 0x5a9da8d
cmp dword [ebp + 0x18], 1
jne 0x5a9d9bf
cmp edx, 0xffffffff
jne 0x5a9d992
mov ebx, dword [ebp + 0x48]
add al, 0x21
jmp 0x5a9da7f
mov ebx, esi
cmp edx, 1
je 0x5a9dbdf
mov al, byte [ebp + 0x38]
add al, 0x25
mov byte [esi], al
mov eax, dword [ebp + 0x24]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
jmp 0x5a9da96
mov ebx, dword [ebp + 0x48]
add cl, 0x27
mov byte [ebx], cl
mov ecx, dword [ebp + 0x18]
sar ecx, 8
mov byte [ebx + 1], cl
mov cl, byte [ebp + 0x18]
mov byte [ebx + 2], cl
add ebx, 3
test edx, edx
jns 0x5a9da23
cmp dword [ebp + 0x1c], 0
je 0x5a9da07
cmp dword [ebp + 0x4c], 0x80
jl 0x5a9da07
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x6c]
push eax
push ebx
call fcn.05ac9880
mov eax, dword [ebp + 0x38]
add esp, 0xc
add ebx, esi
jmp 0x5a9da1f
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x44]
inc ebx
test ecx, ecx
js 0x5a9da1f
mov byte [ebx], cl
mov cl, byte [ebp + 0x40]
mov byte [ebx + 1], cl
add ebx, 2
add al, 0x1f
jmp 0x5a9da7f
mov ecx, dword [ebp + 0x18]
cmp dword [ebp + 0x24], ecx
je 0x5a9da96
cmp dword [ebp + 0x1c], 0
je 0x5a9da55
cmp dword [ebp + 0x4c], 0x80
jl 0x5a9da55
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x6c]
push eax
push ebx
call fcn.05ac9880
mov eax, dword [ebp + 0x38]
add esp, 0xc
add ebx, esi
jmp 0x5a9da5b
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x44], 0
mov ecx, dword [ebp + 0x24]
jl 0x5a9da72
mov dl, byte [ebp + 0x44]
mov byte [ebx], dl
mov dl, byte [ebp + 0x40]
mov byte [ebx + 1], dl
add ebx, 2
sub ecx, dword [ebp + 0x18]
mov dword [ebp + 0x24], ecx
cmp ecx, 1
jne 0x5a9da84
add al, 0x23
mov byte [ebx], al
inc ebx
jmp 0x5a9da96
add al, 0x25
mov byte [ebx], al
mov eax, ecx
mov byte [ebx + 2], cl
sar eax, 8
mov byte [ebx + 1], al
add ebx, 3
cmp dword [ebp + 0x1c], 0
je 0x5a9dabd
cmp dword [ebp + 0x4c], 0x80
jl 0x5a9dabd
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x6c]
push eax
push ebx
call fcn.05ac9880
add esp, 0xc
add ebx, esi
jmp 0x5a9dac3
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x44], 0
jl 0x5a9dad7
mov al, byte [ebp + 0x44]
mov byte [ebx], al
mov al, byte [ebp + 0x40]
mov byte [ebx + 1], al
add ebx, 2
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x34], 0
je 0x5a9dbdf
mov cl, byte [esi]
cmp cl, 0x27
je 0x5a9daf5
cmp cl, 0x41
je 0x5a9dafa
cmp cl, 0x34
jne 0x5a9db1d
cmp cl, 0x41
jne 0x5a9db0a
mov al, byte [esi + 3]
cmp al, 0x10
je 0x5a9db05
cmp al, 0xf
jne 0x5a9db0a
push 2
pop eax
jmp 0x5a9db0c
xor eax, eax
movzx ecx, cl
movzx ecx, byte [ecx + 0x5b48be0]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, ebx
sub eax, esi
mov dword [ebp + 0x20], eax
test eax, eax
jle 0x5a9dbdf
movzx eax, byte [esi]
cmp eax, 0x30
jg 0x5a9db79
je 0x5a9db74
sub eax, 0x1f
je 0x5a9db6f
push 2
pop ecx
sub eax, ecx
je 0x5a9db6a
sub eax, ecx
je 0x5a9db65
sub eax, ecx
je 0x5a9db60
sub eax, 7
je 0x5a9db5b
sub eax, ecx
jne 0x5a9db8f
mov byte [esi], 0x36
jmp 0x5a9dbdf
mov byte [esi], 0x35
jmp 0x5a9dbdf
mov byte [esi], 0x2b
jmp 0x5a9dbdf
mov byte [esi], 0x2a
jmp 0x5a9dbdf
mov byte [esi], 0x29
jmp 0x5a9dbdf
mov byte [esi], 0x28
jmp 0x5a9dbdf
mov byte [esi], 0x37
jmp 0x5a9dbdf
sub eax, 0x32
je 0x5a9dbdc
sub eax, 7
je 0x5a9dbd7
dec eax
dec eax
je 0x5a9dbd2
dec eax
dec eax
je 0x5a9dbcd
dec eax
dec eax
je 0x5a9dbc8
mov ecx, dword [ebp + 0x20]
lea eax, [esi + 3]
mov edx, esi
call fcn.05a9fd37
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x20]
mov byte [eax], 0x5d
add ecx, 3
mov byte [ebx + 3], 0x55
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
mov edx, dword [ebp + 0xc]
mov byte [edx + 1], al
mov eax, dword [ebp + 0xc]
add ebx, 6
mov byte [eax + 2], cl
jmp 0x5a9dbdf
mov byte [esi], 0x45
jmp 0x5a9dbdf
mov byte [esi], 0x44
jmp 0x5a9dbdf
mov byte [esi], 0x43
jmp 0x5a9dbdf
mov byte [esi], 0x42
jmp 0x5a9dbdf
mov byte [esi], 0x38
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp + 0x78]
and dword [ebp + 0x48], 0
or dword [edi + 0x48], eax
jmp 0x5a9f0d9
test byte [ebp + 0x28], 2
je 0x5a9dc01
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9dc01
or dword [ebp + 0x2c], 0xffffffff
mov byte [ebx], 0x1a
mov dword [ebp + 0x48], edx
inc ebx
jmp 0x5a9f0d9
test dword [edi + 0x40], 0x2000000
jne 0x5a9f1a5
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x50], al
je 0x5a9ef82
cmp dword [ebp + 0x4c], 0xc0
jl 0x5a9ef82
mov ecx, dword [ebp + 0x50]
jmp 0x5a9dc49
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
mov byte [ebp + esi - 0x50], al
inc esi
inc ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x5a9dc3f
jmp 0x5a9ef82
push 0
push dword [ebp + 0x28]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x48], esi
push dword [ebp + 0x68]
push eax
call fcn.05a9b214
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x5a9f258
xor edx, edx
cmp eax, edx
jge 0x5a9e3a2
mov edi, eax
neg edi
cmp edi, 0x1a
jne 0x5a9dcb5
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x5a9dca9
add eax, 2
cmp byte [eax], 0x45
jne 0x5a9dca9
mov dword [ebp + 0x50], eax
jmp 0x5a9f0d6
mov dword [ebp + 4], 1
jmp 0x5a9f0d6
cmp edi, 0x19
je 0x5a9f0d6
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9dcd2
cmp edi, 5
jle 0x5a9dcd2
cmp edi, 0x17
jge 0x5a9dcd2
or dword [ebp + 0x2c], 0xffffffff
mov ecx, dword [ebp + 0x2c]
mov dword [ebp], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x10], ecx
cmp edi, 0x1b
jne 0x5a9e0d2
mov edi, dword [ebp + 0x78]
mov esi, dword [ebp + 0x50]
mov eax, dword [edi + 0x20]
mov dword [ebp - 8], eax
inc esi
xor eax, eax
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x3c
mov dword [ebp + 0x40], edx
setne al
mov dword [ebp + 0x20], edx
dec eax
and eax, 0x17
add eax, 0x27
mov dword [ebp + 0x4c], eax
lea eax, [esi + 1]
mov cl, byte [eax]
cmp cl, 0x2b
je 0x5a9dd7f
cmp cl, 0x2d
je 0x5a9dd7f
mov ecx, eax
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x44], ecx
jmp 0x5a9dd4e
movzx ecx, cl
cmp ecx, dword [ebp + 0x4c]
je 0x5a9dd54
mov edx, dword [edi + 0xc]
mov cl, byte [ecx + edx]
test cl, 4
jne 0x5a9dd43
and dword [ebp + 0x3c], 0
test cl, 0x10
je 0x5a9dd54
inc dword [ebp + 0x44]
mov ecx, dword [ebp + 0x44]
mov cl, byte [ecx]
test cl, cl
jne 0x5a9dd2c
mov ecx, dword [ebp + 0x44]
movzx ecx, byte [ecx]
cmp ecx, dword [ebp + 0x4c]
je 0x5a9dd6d
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x39
jmp 0x5a9f0d9
cmp dword [ebp + 0x3c], 0
jne 0x5a9dd99
mov dword [ebp + 0x40], 1
jmp 0x5a9e11d
add esi, 2
jmp 0x5a9dd85
inc esi
movzx ecx, byte [esi]
test byte [ecx + 0x5b455a0], 4
jne 0x5a9dd84
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x4c]
jne 0x5a9dd5f
mov esi, eax
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx ecx, dl
cmp ecx, 0x2b
jne 0x5a9ddca
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x5b455a0], 4
jne 0x5a9e053
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3f
jmp 0x5a9f258
cmp ecx, 0x2d
jne 0x5a9e053
inc esi
movzx eax, byte [esi]
test byte [eax + 0x5b455a0], 4
jne 0x5a9e050
xor ecx, ecx
xor esi, esi
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x44], esi
lea eax, [ebp + 0x44]
cmp dl, 0x29
je 0x5a9de73
cmp dl, 0x3a
je 0x5a9de6d
inc dword [ebp + 0x50]
movzx ecx, dl
cmp ecx, 0x69
jg 0x5a9de43
je 0x5a9de3e
cmp ecx, 0x2d
je 0x5a9de39
cmp ecx, 0x4a
je 0x5a9de2d
cmp ecx, 0x55
je 0x5a9de25
cmp ecx, 0x58
jne 0x5a9f1b3
or dword [eax], 0x40
jmp 0x5a9de63
or dword [eax], 0x200
jmp 0x5a9de63
or dword [eax], 0x80000
or dword [edi + 0x44], 0x10
jmp 0x5a9de63
lea eax, [ebp + 0x3c]
jmp 0x5a9de63
or dword [eax], 1
jmp 0x5a9de63
cmp ecx, 0x6d
je 0x5a9de60
cmp ecx, 0x73
je 0x5a9de5b
cmp ecx, 0x78
jne 0x5a9f1b3
or dword [eax], 8
jmp 0x5a9de63
or dword [eax], 4
jmp 0x5a9de63
or dword [eax], 2
mov ecx, dword [ebp + 0x50]
mov dl, byte [ecx]
cmp dl, 0x29
jne 0x5a9ddf6
mov esi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
or esi, dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
not ecx
and ecx, esi
cmp byte [eax], 0x29
mov dword [ebp + 0x14], ecx
jne 0x5a9dedf
mov eax, dword [edi + 0x14]
add eax, 3
cmp ebx, eax
jne 0x5a9dea0
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x5a9de9b
cmp dword [eax], 6
jne 0x5a9dea0
mov dword [edi + 0x40], ecx
jmp 0x5a9ded2
mov eax, ecx
xor eax, dword [ebp + 0x28]
test al, 7
je 0x5a9deb6
mov al, cl
and al, 7
mov byte [ebx], 0x19
mov byte [ebx + 1], al
add ebx, 2
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0x78], eax
xor eax, 1
mov dword [ebp - 0x70], eax
mov eax, ecx
and eax, 1
shl eax, 8
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x28], ecx
mov dword [eax], ecx
jmp 0x5a9cd01
inc dword [ebp + 0x50]
mov dword [ebp + 0x3c], 0x5e
mov dword [ebp + 0x48], ebx
jmp 0x5a9cd15
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x14]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x58]
push ecx
push dword [ebp + 0x40]
push dword [ebp + 0x20]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp + 0x28]
and eax, 7
push eax
push dword [ebp + 0x14]
call fcn.05a9f26a
add esp, 0x34
test eax, eax
je 0x5a9f258
mov edx, dword [ebp + 0x3c]
cmp edx, 0x60
jne 0x5a9df71
xor ecx, ecx
cmp dword [ebp + 0x7c], ecx
jne 0x5a9df71
mov eax, ebx
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 2]
shl esi, 8
or esi, edi
add eax, esi
inc ecx
cmp byte [eax], 0x55
jne 0x5a9df4a
cmp byte [ebx + 3], 0x66
jne 0x5a9dfbf
cmp ecx, 1
jg 0x5a9f1c4
push 0x66
pop edx
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x29
jne 0x5a9f1dd
mov eax, dword [ebp + 0x7c]
xor esi, esi
cmp eax, esi
je 0x5a9dfd8
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
mov esi, 0x7fffffeb
sub esi, ecx
lea edi, [edx - 6]
cmp esi, edi
jl 0x5a9f0f2
lea ecx, [ecx + edx - 6]
mov dword [eax], ecx
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
add ebx, 6
jmp 0x5a9f0d6
cmp ecx, 2
jg 0x5a9f1d2
cmp ecx, 1
jne 0x5a9df71
or ecx, 0xffffffff
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x58], ecx
jmp 0x5a9df74
mov ebx, dword [ebp + 0xc]
cmp edx, 0x66
je 0x5a9f0d6
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp], eax
mov dword [ebp - 0x64], esi
cmp edx, 0x5d
jl 0x5a9e03a
cmp eax, 0xfffffffe
jne 0x5a9e017
cmp ecx, esi
jl 0x5a9e00d
mov dword [ebp + 0x2c], ecx
mov dword [ebp - 0x64], 1
jmp 0x5a9e011
or dword [ebp + 0x2c], 0xffffffff
or dword [ebp], 0xffffffff
jmp 0x5a9e026
cmp ecx, esi
jl 0x5a9e026
cmp dword [ebp - 0x20], esi
jge 0x5a9e02f
or ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], esi
jl 0x5a9f0d6
mov eax, dword [ebp - 0x20]
mov dword [ebp + 8], eax
jmp 0x5a9f0d6
cmp edx, 0x58
jne 0x5a9f0d6
mov eax, dword [ebp - 0x20]
cmp eax, esi
jl 0x5a9f0d6
jmp 0x5a9e032
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [eax + 0x5b455a0], 4
mov dword [ebp + 0x38], edx
je 0x5a9e07e
imul edx, edx, 0xa
inc esi
lea edx, [edx + eax - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x5b455a0], 4
jne 0x5a9e064
mov dword [ebp + 0x38], edx
movzx eax, byte [esi]
cmp eax, dword [ebp + 0x4c]
jne 0x5a9f1e8
cmp ecx, 0x2d
jne 0x5a9e0b6
test edx, edx
je 0x5a9f131
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
mov dword [ebp + 0x38], eax
test eax, eax
jg 0x5a9e1f5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x5a9f258
cmp ecx, 0x2b
jne 0x5a9e1f5
test edx, edx
je 0x5a9f131
add edx, dword [edi + 0x30]
mov dword [ebp + 0x38], edx
jmp 0x5a9e1f5
cmp edi, 0x1c
jne 0x5a9e2e1
mov esi, dword [ebp + 0x50]
inc esi
mov cl, byte [esi]
cmp cl, 0x3c
je 0x5a9e0f4
cmp cl, 0x27
je 0x5a9e0f4
cmp cl, 0x7b
jne 0x5a9e2e1
mov edi, dword [ebp + 0x78]
mov dword [ebp + 0x50], esi
mov al, byte [esi]
mov dword [ebp + 0x40], edx
cmp al, 0x3c
jne 0x5a9e10c
mov dword [ebp + 0x4c], 0x3e
jmp 0x5a9e11d
xor ecx, ecx
cmp al, 0x27
setne cl
dec ecx
and ecx, 0xffffffaa
add ecx, 0x7d
mov dword [ebp + 0x4c], ecx
mov ecx, dword [edi + 0xc]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x34], esi
je 0x5a9e13f
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x5a9e132
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x30], eax
je 0x5a9e170
test eax, eax
je 0x5a9f1f3
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x4c]
jne 0x5a9f15b
cmp eax, 0x20
jg 0x5a9d180
and dword [ebp + 0x38], 0
jmp 0x5a9e1eb
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x5a9e1ab
push dword [ebp + 0x30]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.05acf215
add esp, 0xc
test eax, eax
jne 0x5a9e19d
mov eax, dword [ebp + 0x30]
cmp byte [esi + eax + 2], 0
je 0x5a9e1ab
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jl 0x5a9e17d
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jge 0x5a9e1c4
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
mov dword [ebp + 0x38], eax
jmp 0x5a9e1eb
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 + 0x34]
push edi
call fcn.05a9b73b
add esp, 0x10
mov dword [ebp + 0x38], eax
test eax, eax
jle 0x5a9e0a8
cmp dword [ebp + 0x40], 0
je 0x5a9e2f1
mov eax, dword [edi + 0x14]
xor esi, esi
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x44], eax
cmp dword [ebp + 0x7c], esi
jne 0x5a9e2a3
mov byte [ebx], 0
cmp dword [ebp + 0x38], esi
je 0x5a9e224
push dword [ebp + 0x38]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x1c]
call fcn.05a9bb94
pop ecx
pop ecx
mov dword [ebp + 0x44], eax
cmp eax, esi
jne 0x5a9e277
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.05a9b73b
add esp, 0x10
test eax, eax
js 0x5a9e0a8
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
jmp 0x5a9e2a0
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
jne 0x5a9e2a3
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x44]
call fcn.05a9bef3
add esp, 0xc
test eax, eax
jne 0x5a9f1fe
mov eax, dword [ebp + 0x44]
mov dword [ebx], 0x5206005d
mov ecx, eax
sub ecx, dword [edi + 0x14]
add ebx, 9
sar ecx, 8
mov byte [ebx - 5], cl
sub al, byte [edi + 0x14]
cmp dword [ebp + 0x2c], 0xfffffffe
mov byte [ebx - 4], al
mov word [ebx - 3], 0x55
mov byte [ebx - 1], 6
mov dword [ebp - 0x14], 9
jne 0x5a9f0d9
or dword [ebp + 0x2c], 0xffffffff
jmp 0x5a9f0d9
cmp edi, 0x1d
jl 0x5a9e333
mov edi, dword [ebp + 0x78]
push 0xffffffffffffffe3
pop ecx
sub ecx, eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9e2fb
or dword [ebp + 0x2c], 0xffffffff
mov ecx, dword [ebp + 0x38]
mov eax, ecx
sar eax, 8
mov byte [ebx], 0x51
mov byte [ebx + 1], al
xor eax, eax
mov dword [ebp + 0x48], ebx
mov byte [ebx + 2], cl
add ebx, 3
inc eax
cmp ecx, 0x20
jge 0x5a9e31c
shl eax, cl
or dword [edi + 0x3c], eax
cmp ecx, dword [edi + 0x38]
jle 0x5a9f0d9
mov eax, dword [ebp + 0x38]
mov dword [edi + 0x38], eax
jmp 0x5a9f0d9
cmp edi, 0xf
je 0x5a9e357
cmp edi, 0x10
je 0x5a9e357
cmp edi, 5
jle 0x5a9e34a
mov dword [ebp + 0x48], ebx
cmp edi, 0x17
jl 0x5a9e34d
mov dword [ebp + 0x48], edx
neg al
mov byte [ebx], al
inc ebx
jmp 0x5a9f0d6
push dword [ebp + 0x68]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x50]
push eax
lea edx, [ebp - 0x84]
call fcn.05a9b576
add esp, 0xc
test eax, eax
js 0x5a9f258
xor ecx, ecx
cmp edi, 0x10
sete cl
mov dword [ebp + 0x48], ebx
cmp ecx, dword [ebp - 0x84]
setne cl
add cl, 0xf
mov byte [ebx], cl
mov byte [ebx + 1], al
mov al, byte [ebp - 0x7c]
mov byte [ebx + 2], al
add ebx, 3
jmp 0x5a9f0d6
cmp dword [ebp + 0x1c], edx
je 0x5a9e3bf
cmp eax, 0x7f
jle 0x5a9e3bf
lea ecx, [ebp - 0x50]
push ecx
push eax
call fcn.05abb04b
pop ecx
pop ecx
mov esi, eax
jmp 0x5a9ef7f
xor esi, esi
inc esi
jmp 0x5a9ef7c
mov al, byte [esi + 1]
mov dword [ebp + 0x48], ebx
cmp al, 0x3a
je 0x5a9e3d9
cmp al, 0x2e
je 0x5a9e3d9
cmp al, 0x3d
jne 0x5a9e3f0
lea eax, [ebp - 0x48]
push eax
mov eax, esi
call fcn.05a9bf25
pop ecx
test eax, eax
jne 0x5a9f209
mov esi, dword [ebp + 0x50]
mov dword [ebp + 0x44], edx
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
mov dword [ebp + 0x4c], eax
cmp eax, 0x5c
jne 0x5a9e426
inc esi
cmp byte [esi], 0x45
je 0x5a9e3f3
push 3
push 0x5b456a0
push esi
call fcn.05acf215
add esp, 0xc
test eax, eax
jne 0x5a9e46b
mov esi, dword [ebp + 0x50]
add esi, 3
xor edx, edx
jmp 0x5a9e3f3
cmp dword [ebp + 0x44], edx
jne 0x5a9e439
cmp eax, 0x5e
jne 0x5a9e439
mov dword [ebp + 0x44], 1
jmp 0x5a9e3f3
cmp eax, 0x5d
jne 0x5a9e46b
test dword [edi + 0x40], 0x2000000
je 0x5a9e46b
cmp dword [ebp + 0x44], edx
sete al
dec al
and al, 0xa0
add al, 0x6d
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9e460
or dword [ebp + 0x2c], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [ebp], eax
jmp 0x5a9f0d9
or dword [ebp + 0x38], 0xffffffff
xor esi, esi
push 0x20
lea eax, [ebp - 0x44]
push esi
push eax
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x30], esi
call fcn.05acaa80
add esp, 0xc
lea edi, [ebx + 4]
mov dword [ebp + 0x3c], esi
mov dword [ebp - 0x24], edi
cmp dword [ebp + 0x4c], esi
je 0x5a9f24f
cmp dword [ebp + 0x1c], 0
je 0x5a9e4fc
cmp dword [ebp + 0x4c], 0x7f
jle 0x5a9e4fc
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
mov dword [ebp + 0x4c], eax
cmp eax, 0xc0
jl 0x5a9e4fc
and eax, 0x3f
movzx eax, byte [eax + 0x5b48ca0]
mov edx, dword [eax*4 + 0x5b48c84]
and edx, dword [ebp + 0x4c]
mov ecx, eax
imul ecx, ecx, 6
shl edx, cl
mov dword [ebp + 0x4c], edx
xor edx, edx
inc edx
mov dword [ebp + 0x10], edx
cmp eax, edx
jl 0x5a9e4f9
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x50]
movzx edx, byte [esi + edx]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or dword [ebp + 0x4c], edx
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], eax
jle 0x5a9e4dc
add dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x7c]
xor esi, esi
cmp eax, esi
je 0x5a9e50e
mov ecx, edi
mov edi, dword [ebp - 0x24]
sub ecx, edi
add dword [eax], ecx
cmp dword [ebp + 4], esi
je 0x5a9e535
cmp dword [ebp + 0x4c], 0x5c
jne 0x5a9e6bc
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x5a9e6bc
mov dword [ebp + 4], esi
mov dword [ebp + 0x50], eax
jmp 0x5a9eee1
cmp dword [ebp + 0x4c], 0x5b
jne 0x5a9e67f
mov ecx, dword [ebp + 0x50]
mov al, byte [ecx + 1]
cmp al, 0x3a
je 0x5a9e555
cmp al, 0x2e
je 0x5a9e555
cmp al, 0x3d
jne 0x5a9e6bc
lea eax, [ebp - 0x48]
push eax
mov eax, ecx
call fcn.05a9bf25
pop ecx
test eax, eax
je 0x5a9e6bc
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 8]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
mov dword [ebp + 0x14], esi
jne 0x5a9f223
add eax, 2
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5e
jne 0x5a9e59a
xor ecx, ecx
inc ecx
inc eax
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x50], eax
mov ecx, dword [ebp - 0x48]
sub ecx, eax
push ecx
push eax
call fcn.05a9bf65
pop ecx
pop ecx
cmp eax, esi
jl 0x5a9f22e
test byte [ebp + 0x28], 1
je 0x5a9e5bd
cmp eax, 2
jg 0x5a9e5bd
xor eax, eax
imul eax, eax, 3
mov esi, eax
mov eax, dword [esi*4 + 0x5b44bc8]
add eax, dword [ebp + 0x20]
push 0x20
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.05ac9880
mov eax, dword [esi*4 + 0x5b44bcc]
mov edx, dword [esi*4 + 0x5b44bd0]
add esp, 0xc
test eax, eax
js 0x5a9e61f
mov esi, dword [ebp + 0x20]
xor ecx, ecx
add esi, eax
test edx, edx
js 0x5a9e60d
mov al, byte [esi + ecx]
or byte [ebp + ecx - 0xa8], al
inc ecx
cmp ecx, 0x20
jl 0x5a9e5fb
jmp 0x5a9e61f
mov al, byte [esi + ecx]
not al
and byte [ebp + ecx - 0xa8], al
inc ecx
cmp ecx, 0x20
jl 0x5a9e60d
xor eax, eax
cmp edx, eax
jge 0x5a9e627
neg edx
cmp edx, 1
jne 0x5a9e635
and byte [ebp - 0xa7], 0xc3
jmp 0x5a9e641
cmp edx, 2
jne 0x5a9e641
and byte [ebp - 0x9d], 0x7f
cmp dword [ebp + 0x14], eax
je 0x5a9e65b
mov cl, byte [ebp + eax - 0xa8]
not cl
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x5a9e646
jmp 0x5a9e66c
mov cl, byte [ebp + eax - 0xa8]
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x5a9e65b
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x30], 0xa
jmp 0x5a9eee1
cmp dword [ebp + 0x4c], 0x5c
jne 0x5a9e6bc
mov eax, dword [ebp + 0x78]
mov esi, dword [ebp + 0x68]
push 1
push dword [ebp + 0x28]
push dword [eax + 0x30]
lea eax, [ebp + 0x50]
push esi
push eax
call fcn.05a9b214
add esp, 0x14
cmp dword [esi], 0
mov dword [ebp + 0x4c], eax
jne 0x5a9f258
mov esi, eax
neg esi
cmp esi, 5
jne 0x5a9e6c4
mov dword [ebp + 0x4c], 8
mov ecx, dword [ebp + 0x50]
jmp 0x5a9eb40
cmp esi, 0x16
jne 0x5a9e6d2
mov dword [ebp + 0x4c], 0x58
jmp 0x5a9e6bc
cmp esi, 0x11
jne 0x5a9e6e0
mov dword [ebp + 0x4c], 0x52
jmp 0x5a9e6bc
cmp esi, 0x1a
jne 0x5a9e706
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x5a9e6fa
add eax, 2
cmp byte [eax], 0x45
je 0x5a9e52d
mov dword [ebp + 4], 1
jmp 0x5a9eee1
cmp esi, 0x19
je 0x5a9eee1
xor edx, edx
cmp dword [ebp + 0x4c], edx
jge 0x5a9e6bc
mov eax, dword [ebp + 0x78]
add dword [ebp + 0x30], 2
mov eax, dword [eax + 8]
cmp dword [ebp + 0x7c], edx
jne 0x5a9e7fe
mov ecx, esi
sub ecx, 6
je 0x5a9e7e0
dec ecx
je 0x5a9e7cb
dec ecx
je 0x5a9e7a3
dec ecx
je 0x5a9e784
dec ecx
je 0x5a9e763
dec ecx
jne 0x5a9e837
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x5a9e74d
jmp 0x5a9eee1
mov dword [ebp + 0x40], 1
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
not cl
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x5a9e76c
jmp 0x5a9eee1
lea ecx, [ebp - 0x44]
xor esi, esi
sub eax, ecx
lea ecx, [ebp + esi - 0x44]
mov dl, byte [eax + ecx]
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x5a9e78b
and byte [ebp - 0x43], 0xf7
jmp 0x5a9eee1
lea ecx, [ebp - 0x44]
xor esi, esi
mov dword [ebp + 0x40], 1
sub eax, ecx
lea ecx, [ebp + esi - 0x44]
mov dl, byte [eax + ecx]
not dl
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x5a9e7b1
or byte [ebp - 0x43], 8
jmp 0x5a9eee1
xor esi, esi
mov cl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x5a9e7cd
jmp 0x5a9eee1
mov dword [ebp + 0x40], 1
xor esi, esi
mov cl, byte [eax + esi + 0x40]
not cl
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x5a9e7e9
jmp 0x5a9eee1
mov eax, dword [ebp + 0x4c]
cmp eax, 0xfffffff9
je 0x5a9eee1
cmp eax, 0xfffffffa
je 0x5a9eee1
cmp eax, 0xfffffff5
je 0x5a9eee1
cmp eax, 0xfffffff6
je 0x5a9eee1
cmp eax, 0xfffffff7
je 0x5a9eee1
cmp eax, 0xfffffff8
je 0x5a9eee1
cmp esi, 0x13
jne 0x5a9e8d7
or byte [ebp - 0x43], 2
or byte [ebp - 0x40], 1
or byte [ebp - 0x30], 1
cmp dword [ebp + 0x1c], edx
je 0x5a9eee1
mov byte [edi], 1
inc edi
push edi
push 0x1680
mov dword [ebp + 0x3c], 1
call fcn.05abb04b
add edi, eax
mov byte [edi], 1
inc edi
push edi
push 0x180e
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x2000
call fcn.05abb04b
add edi, eax
push edi
push 0x200a
call fcn.05abb04b
add edi, eax
mov byte [edi], 1
inc edi
push edi
push 0x202f
call fcn.05abb04b
add edi, eax
mov byte [edi], 1
inc edi
push edi
push 0x205f
call fcn.05abb04b
add edi, eax
mov byte [edi], 1
inc edi
push edi
push 0x3000
call fcn.05abb04b
add esp, 0x38
add edi, eax
jmp 0x5a9eee1
cmp esi, 0x12
jne 0x5a9e9fa
xor ecx, ecx
mov esi, 0xfe
mov eax, ecx
dec eax
mov edx, 0xff
je 0x5a9e8ff
sub eax, 3
je 0x5a9e8fb
sub eax, 0x10
jne 0x5a9e904
mov edx, esi
jmp 0x5a9e904
mov edx, 0xfd
or byte [ebp + ecx - 0x44], dl
inc ecx
cmp ecx, 0x20
jl 0x5a9e8e7
cmp dword [ebp + 0x1c], 0
je 0x5a9eee1
mov byte [edi], 2
inc edi
push edi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.05abb04b
add edi, eax
push edi
push 0x167f
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x1681
call fcn.05abb04b
add edi, eax
push edi
push 0x180d
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x180f
call fcn.05abb04b
add edi, eax
push edi
push 0x1fff
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x200b
call fcn.05abb04b
add edi, eax
push edi
push 0x202e
call fcn.05abb04b
add edi, eax
add esp, 0x40
mov byte [edi], 2
inc edi
push edi
push 0x2030
call fcn.05abb04b
add edi, eax
push edi
push 0x205e
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x2060
call fcn.05abb04b
add edi, eax
push edi
push 0x2fff
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x3001
call fcn.05abb04b
add edi, eax
push edi
push 0x7fffffff
call fcn.05abb04b
add esp, 0x30
jmp 0x5a9e8d0
cmp esi, 0x15
jne 0x5a9ea3b
or byte [ebp - 0x43], 0x3c
or byte [ebp - 0x34], 0x20
cmp dword [ebp + 0x1c], edx
je 0x5a9eee1
mov byte [edi], 2
inc edi
push edi
push 0x2028
mov dword [ebp + 0x3c], 1
call fcn.05abb04b
add edi, eax
push edi
push 0x2029
call fcn.05abb04b
add esp, 0x10
jmp 0x5a9e8d0
cmp esi, 0x14
jne 0x5a9eab7
xor eax, eax
mov esi, eax
dec esi
mov ecx, 0xff
je 0x5a9ea56
sub esi, 0xf
jne 0x5a9ea5b
add ecx, 0xffffffe0
jmp 0x5a9ea5b
mov ecx, 0xc3
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x5a9ea42
cmp dword [ebp + 0x1c], edx
je 0x5a9eee1
mov byte [edi], 2
inc edi
push edi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.05abb04b
add edi, eax
push edi
push 0x2027
call fcn.05abb04b
add edi, eax
mov byte [edi], 2
inc edi
push edi
push 0x2029
call fcn.05abb04b
add edi, eax
push edi
push 0x7fffffff
call fcn.05abb04b
add esp, 0x20
jmp 0x5a9e8d0
cmp esi, 0x10
je 0x5a9eadd
cmp esi, 0xf
je 0x5a9eadd
test byte [ebp + 0x28], 0x40
jne 0x5a9f239
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
sub dword [ebp + 0x30], 2
mov dword [ebp + 0x4c], eax
jmp 0x5a9e6bc
push dword [ebp + 0x68]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp + 0x50]
push eax
lea edx, [ebp - 0x88]
call fcn.05a9b576
add esp, 0xc
test eax, eax
js 0x5a9f258
xor ecx, ecx
cmp esi, 0x10
sete cl
mov dword [ebp + 0x3c], 1
cmp ecx, dword [ebp - 0x88]
sete cl
add cl, 3
mov byte [edi], cl
mov byte [edi + 1], al
mov al, byte [ebp - 0x80]
mov byte [edi + 2], al
add edi, 3
sub dword [ebp + 0x30], 2
jmp 0x5a9eee1
cmp byte [ecx + 2], 0x45
jne 0x5a9eb46
and dword [ebp + 4], 0
add ecx, 2
mov dword [ebp + 0x50], ecx
cmp byte [ecx + 1], 0x5c
je 0x5a9eb30
cmp dword [ebp + 0x4c], 0xd
mov dword [ebp + 0x14], ecx
je 0x5a9eb55
cmp dword [ebp + 0x4c], 0xa
jne 0x5a9eb5c
mov eax, dword [ebp + 0x78]
or dword [eax + 0x44], 0x20
cmp dword [ebp + 4], 0
jne 0x5a9ee00
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x5a9ee00
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x5a9ebbb
cmp byte [eax + 1], 0x45
jne 0x5a9ebad
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x5a9eb80
jmp 0x5a9ebad
cmp byte [eax + 1], 0x51
jne 0x5a9ebbb
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x5a9ebb4
cmp byte [eax + 1], 0x45
jne 0x5a9ebb4
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x5a9eb92
jmp 0x5a9ebbb
mov dword [ebp + 4], 1
mov al, byte [eax]
test al, al
je 0x5a9edfa
cmp dword [ebp + 4], 0
jne 0x5a9ebd3
cmp al, 0x5d
je 0x5a9edfa
cmp dword [ebp + 0x1c], 0
movzx esi, al
mov dword [ebp + 0x34], esi
je 0x5a9ec3c
cmp esi, 0xc0
jl 0x5a9ec3c
mov eax, esi
and eax, 0x3f
movzx eax, byte [eax + 0x5b48ca0]
mov edx, dword [eax*4 + 0x5b48c84]
mov ecx, eax
imul ecx, ecx, 6
and edx, esi
shl edx, cl
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x10], 1
mov esi, edx
mov dword [ebp + 0x34], edx
cmp eax, 1
jl 0x5a9ec39
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or esi, eax
inc dword [ebp + 0x10]
mov eax, dword [ebp + 0x20]
cmp dword [ebp + 0x10], eax
jle 0x5a9ec17
mov dword [ebp + 0x34], esi
add dword [ebp + 0x50], eax
cmp dword [ebp + 4], 0
jne 0x5a9ec97
cmp esi, 0x5c
jne 0x5a9ec97
mov eax, dword [ebp + 0x78]
push 1
push dword [ebp + 0x28]
push dword [eax + 0x30]
lea eax, [ebp + 0x50]
push dword [ebp + 0x68]
push eax
call fcn.05a9b214
mov esi, eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
mov dword [ebp + 0x34], esi
jne 0x5a9f258
test esi, esi
jns 0x5a9ec97
cmp esi, 0xfffffffb
jne 0x5a9ec7f
push 8
jmp 0x5a9ec93
cmp esi, 0xffffffea
jne 0x5a9ec88
push 0x58
jmp 0x5a9ec93
cmp esi, 0xffffffef
jne 0x5a9edfa
push 0x52
pop esi
mov dword [ebp + 0x34], esi
cmp esi, dword [ebp + 0x4c]
jl 0x5a9f244
je 0x5a9ee00
cmp esi, 0xd
je 0x5a9ecb0
cmp esi, 0xa
jne 0x5a9ecb7
mov eax, dword [ebp + 0x78]
or dword [eax + 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x5a9ed79
cmp esi, 0xff
jg 0x5a9ecdc
test byte [ebp + 0x28], 1
je 0x5a9ed79
cmp esi, 0x7f
jle 0x5a9ed79
test byte [ebp + 0x28], 1
mov dword [ebp + 0x3c], 1
je 0x5a9ed61
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x20], edx
jmp 0x5a9ed4b
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp + 0x4c]
mov esi, dword [ebp - 0x5c]
cmp ecx, eax
jb 0x5a9ed1a
cmp esi, dword [ebp + 0x34]
jbe 0x5a9ed48
mov eax, dword [ebp + 0x34]
cmp esi, eax
jbe 0x5a9ed24
inc eax
cmp ecx, eax
ja 0x5a9ed24
mov dword [ebp + 0x34], esi
jmp 0x5a9ed48
dec eax
cmp esi, eax
jb 0x5a9ed09
mov dword [ebp + 0x4c], ecx
jmp 0x5a9ed48
cmp ecx, esi
jne 0x5a9ed2e
mov byte [edi], 1
inc edi
jmp 0x5a9ed3d
mov byte [edi], 2
inc edi
push edi
push ecx
call fcn.05abb04b
pop ecx
pop ecx
add edi, eax
push edi
push esi
call fcn.05abb04b
pop ecx
pop ecx
add edi, eax
mov edx, dword [ebp + 0x20]
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x74]
push eax
lea esi, [ebp + 0x14]
call fcn.05a9c083
pop ecx
pop ecx
test eax, eax
jne 0x5a9ecf7
mov byte [edi], 2
inc edi
push edi
push dword [ebp + 0x4c]
call fcn.05abb04b
add edi, eax
push edi
push dword [ebp + 0x34]
jmp 0x5a9ea2e
mov ecx, dword [ebp + 0x30]
mov eax, esi
sub eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x7c], 0
lea eax, [ecx + eax + 1]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x38], esi
jne 0x5a9eee1
cmp dword [ebp + 0x4c], esi
jg 0x5a9eee1
mov eax, dword [ebp + 0x28]
and eax, 1
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x44]
or byte [eax], dl
cmp dword [ebp + 0x14], 0
je 0x5a9eded
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x44]
or byte [eax], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], esi
jle 0x5a9eda7
jmp 0x5a9eee1
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x1c], 0
je 0x5a9ee8f
cmp dword [ebp + 0x4c], 0xff
jg 0x5a9ee1f
test byte [ebp + 0x28], 1
je 0x5a9ee8f
cmp dword [ebp + 0x4c], 0x7f
jle 0x5a9ee8f
mov esi, dword [ebp + 0x4c]
mov byte [edi], 1
inc edi
push edi
push esi
mov dword [ebp + 0x3c], 1
call fcn.05abb04b
pop ecx
add edi, eax
test byte [ebp + 0x28], 1
pop ecx
je 0x5a9eee1
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5b4a140]
mov ecx, esi
shl eax, 7
and ecx, 0x8000007f
jns 0x5a9ee66
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x5b4c340]
mov eax, dword [eax*8 + 0x5b492fc]
add eax, esi
cmp eax, esi
je 0x5a9eee1
mov byte [edi], 1
inc edi
push edi
push eax
call fcn.05abb04b
pop ecx
pop ecx
jmp 0x5a9e8d0
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea esi, [ebp + eax - 0x44]
and ecx, 7
mov al, 1
shl al, cl
or byte [esi], al
test byte [ebp + 0x28], 1
je 0x5a9eed8
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea esi, [ebp + eax - 0x44]
mov dword [ebp + 0x4c], ecx
and ecx, 7
mov al, 1
shl al, cl
or byte [esi], al
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x30]
mov dword [ebp + 0x38], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
mov dword [ebp + 0x4c], eax
test eax, eax
je 0x5a9f24f
cmp eax, 0x5d
jne 0x5a9e498
cmp dword [ebp + 4], 0
jne 0x5a9e498
xor esi, esi
inc esi
xor ecx, ecx
cmp dword [ebp + 0x30], esi
jne 0x5a9f01d
cmp dword [ebp + 0x3c], ecx
jne 0x5a9f01d
cmp dword [ebp + 0x1c], ecx
je 0x5a9ef36
cmp dword [ebp + 0x44], ecx
je 0x5a9ef36
cmp dword [ebp + 0x38], 0x80
jge 0x5a9f01d
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x44], ecx
je 0x5a9ef62
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9ef4b
or dword [ebp + 0x2c], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [ebp], eax
mov al, byte [ebp + 0x38]
mov byte [ebx], 0x1e
mov byte [ebx + 1], al
add ebx, 2
jmp 0x5a9f0d6
cmp dword [ebp + 0x1c], ecx
je 0x5a9ef79
cmp dword [ebp + 0x38], 0x7f
jle 0x5a9ef79
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x38]
jmp 0x5a9e3b1
mov al, byte [ebp + 0x38]
mov byte [ebp - 0x50], al
mov edi, dword [ebp + 0x78]
mov al, byte [ebp + 0x28]
and al, 1
or al, 0x1c
mov byte [ebx], al
mov dword [ebp + 0x48], ebx
inc ebx
xor eax, eax
test esi, esi
jle 0x5a9efa1
mov cl, byte [ebp + eax - 0x50]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x5a9ef95
cmp byte [ebp - 0x50], 0xd
je 0x5a9efad
cmp byte [ebp - 0x50], 0xa
jne 0x5a9efb1
or dword [edi + 0x44], 0x20
mov eax, dword [ebp + 0x2c]
cmp eax, 0xfffffffe
jne 0x5a9eff3
or dword [ebp], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
cmp esi, 1
je 0x5a9efd7
cmp dword [ebp - 0x1c], 0
je 0x5a9efd7
or dword [ebp + 8], 0xffffffff
jmp 0x5a9e2d8
movzx eax, byte [ebp - 0x50]
or eax, dword [ebp - 0x1c]
mov dword [ebp + 0x2c], eax
cmp esi, 1
je 0x5a9f0d9
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
jmp 0x5a9f015
mov dword [ebp], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
cmp esi, 1
je 0x5a9f00b
cmp dword [ebp - 0x1c], 0
jne 0x5a9f0d9
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
or eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
jmp 0x5a9f0d9
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x5a9f027
or dword [ebp + 0x2c], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [ebp], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x3c], ecx
je 0x5a9f095
cmp dword [ebp + 0x40], ecx
jne 0x5a9f095
cmp dword [ebp + 0x44], ecx
mov byte [edi], 0
setne al
mov byte [ebx], 0x50
mov byte [ebx + 3], al
cmp dword [ebp + 0x30], ecx
jle 0x5a9f07c
or al, 2
mov byte [ebx + 3], al
add ebx, 4
lea ecx, [edi + 1]
sub ecx, ebx
lea eax, [ebx + 0x20]
mov edx, ebx
call fcn.05a9fd37
push 0x20
lea eax, [ebp - 0x44]
push eax
push ebx
call fcn.05ac9880
add esp, 0xc
lea ebx, [edi + 0x21]
jmp 0x5a9f07f
lea ebx, [edi + 1]
mov eax, dword [ebp + 0x48]
mov ecx, ebx
sub ecx, eax
sar ecx, 8
mov byte [eax + 1], cl
mov cl, bl
sub cl, al
mov byte [eax + 2], cl
jmp 0x5a9f0d6
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp + 0x40]
setne dl
add dl, 0x4e
mov byte [ebx], dl
inc ebx
cmp eax, ecx
je 0x5a9f0c4
cmp dword [ebp + 0x7c], ecx
jne 0x5a9f0d3
lea eax, [ebp - 0x44]
push 0x20
mov esi, ebx
sub eax, ebx
pop edi
mov cl, byte [eax + esi]
not cl
mov byte [esi], cl
inc esi
dec edi
jne 0x5a9f0b7
jmp 0x5a9f0d3
push 0x20
lea eax, [ebp - 0x44]
push eax
push ebx
call fcn.05ac9880
add esp, 0xc
add ebx, 0x20
mov edi, dword [ebp + 0x78]
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
jmp 0x5a9c904
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x14
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x40
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3e
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x5a9f258
mov ecx, dword [ebp + 0x50]
xor eax, eax
cmp byte [ecx + 1], 0x3a
setne al
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov ecx, dword [ebp + 0x68]
mov dword [ecx], eax
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x5a9f258
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x64]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret