Function at 0x5aa97c
Capabilities:
Authenticate hmac
Encrypt data using speck
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x298
push esi
push edi
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x68], 0
mov dword [ebp - 8], 0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa0], 0
mov edx, dword [ebp - 0x60]
and edx, 0x800
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x60]
and eax, 0x200
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
xor ecx, 1
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0xc], 0xfffffffe
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x60]
and edx, 1
neg edx
sbb edx, edx
and edx, 0x100
mov dword [ebp - 0x74], edx
jmp 0x5aa50a
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
mov dword [ebp - 0x98], edx
cmp dword [ebp + 0x28], 0
je 0x5aa5d7
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
add ecx, 0x1000
cmp dword [ebp - 0x30], ecx
jbe 0x5aa53f
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x5af3da
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xa8]
jae 0x5aa553
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp + 0x28]
mov eax, 0x7fffffeb
sub eax, dword [edx]
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0xa8]
cmp eax, ecx
jge 0x5aa578
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x14
jmp 0x5af3da
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + 0x28]
add eax, dword [ecx]
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
cmp dword [ebp - 4], 0
je 0x5aa5c6
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jbe 0x5aa5c4
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.005af620
add esp, 0xc
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
sub edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
jmp 0x5aa5cc
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0xa8], edx
jmp 0x5aa5f9
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
add ecx, 0x1000
mov edx, dword [ebp + 0x24]
cmp dword [edx + 0x20], ecx
jbe 0x5aa5f9
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x34
jmp 0x5af3da
cmp dword [ebp - 0x68], 0
je 0x5aa69c
cmp dword [ebp - 0x98], 0
je 0x5aa69c
cmp dword [ebp - 0x98], 0x5c
jne 0x5aa63c
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x45
jne 0x5aa63c
mov dword [ebp - 0x68], 0
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5aa501
cmp dword [ebp - 0xac], 0
je 0x5aa66c
cmp dword [ebp + 0x28], 0
jne 0x5aa662
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0xac]
push eax
call fcn.005b0ca0
add esp, 0xc
mov dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0x60]
and ecx, 0x4000
je 0x5aa697
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.005b0c40
add esp, 0xc
mov dword [ebp - 0x30], eax
jmp case.0x5aa8dd.1
cmp dword [ebp - 0x98], 0x2a
je 0x5aa6df
cmp dword [ebp - 0x98], 0x2b
je 0x5aa6df
cmp dword [ebp - 0x98], 0x3f
je 0x5aa6df
cmp dword [ebp - 0x98], 0x7b
jne 0x5aa6d3
mov eax, dword [ebp - 0x2c]
add eax, 1
push eax
call fcn.005afe80
add esp, 4
test eax, eax
jne 0x5aa6df
mov dword [ebp - 0x230], 0
jmp 0x5aa6e9
mov dword [ebp - 0x230], 1
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0xd0], 0
jne 0x5aa73e
cmp dword [ebp - 0xac], 0
je 0x5aa73e
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
sub eax, 1
mov dword [ebp - 0x78], eax
test edx, edx
jg 0x5aa73e
cmp dword [ebp + 0x28], 0
jne 0x5aa734
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0xac]
push eax
call fcn.005b0ca0
add esp, 0xc
mov dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0x60]
and ecx, 8
je 0x5aa884
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x98]
movzx edx, byte [eax + ecx]
and edx, 1
je 0x5aa764
jmp 0x5aa501
cmp dword [ebp - 0x98], 0x23
jne 0x5aa884
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
test edx, edx
je 0x5aa86b
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x50], 0
je 0x5aa7ec
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ecx + 0x1c]
jae 0x5aa7d4
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp + 0x24]
add ecx, 0x54
push ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x1c]
push eax
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x50]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.005d0c10
add esp, 0x14
test eax, eax
je 0x5aa7d4
mov dword [ebp - 0x234], 1
jmp 0x5aa7de
mov dword [ebp - 0x234], 0
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x238], ecx
jmp 0x5aa84b
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
mov ecx, dword [edx + 0x1c]
sub ecx, dword [eax + 0x54]
cmp dword [ebp - 0x2c], ecx
ja 0x5aa835
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x24]
movzx edx, byte [ecx + 0x58]
cmp eax, edx
jne 0x5aa835
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x54], 1
je 0x5aa829
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x24]
movzx ecx, byte [eax + 0x59]
cmp edx, ecx
jne 0x5aa835
mov dword [ebp - 0x23c], 1
jmp 0x5aa83f
mov dword [ebp - 0x23c], 0
mov edx, dword [ebp - 0x23c]
mov dword [ebp - 0x238], edx
cmp dword [ebp - 0x238], 0
je 0x5aa866
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x54]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx - 1]
mov dword [ebp - 0x2c], eax
jmp 0x5aa86b
jmp 0x5aa771
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
test edx, edx
je 0x5aa87a
jmp 0x5aa501
mov dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x60]
and eax, 0x4000
je 0x5aa8b7
cmp dword [ebp - 0xd0], 0
jne 0x5aa8b7
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp + 0x24]
push edx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.005b0c40
add esp, 0xc
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x240], edx
cmp dword [ebp - 0x240], 0x7c
ja case.0x5aa8dd.1
mov eax, dword [ebp - 0x240]
movzx ecx, byte [eax + 0x5af420]
jmp dword [ecx*4 + 0x5af3ec]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x18]
mov dword [edx], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x7c]
mov dword [ecx], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x30]
mov dword [eax], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x2c]
mov dword [edx], eax
cmp dword [ebp + 0x28], 0
je 0x5aa942
mov ecx, dword [ebp + 0x28]
mov edx, 0x7fffffeb
sub edx, dword [ecx]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0xa8]
cmp edx, eax
jge 0x5aa92f
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x5af3da
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0xa8]
mov eax, dword [ebp + 0x28]
add edx, dword [eax]
mov ecx, dword [ebp + 0x28]
mov dword [ecx], edx
mov eax, 1
jmp 0x5af3e4
mov edx, dword [ebp - 0x60]
and edx, 2
je 0x5aa961
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5aa961
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x1a
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
jmp 0x5af3d5
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x1b
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x5af3d5
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5aa9a4
mov dword [ebp - 0x18], 0xffffffff
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x60]
and ecx, 4
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 0xc
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x5af3d5
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x40]
and edx, 0x2000000
je 0x5aa9f7
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x40
jmp 0x5af3da
jmp case.0x5aa8dd.1
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x3a
je 0x5aaa26
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x2e
je 0x5aaa26
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3d
jne 0x5aaa5b
lea edx, [ebp - 0x90]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.005b08c0
add esp, 8
test eax, eax
je 0x5aaa5b
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
sub edx, 0x3a
neg edx
sbb edx, edx
and edx, 0x12
add edx, 0xd
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
jmp 0x5af3da
mov dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x5c
jne 0x5aaac3
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x45
jne 0x5aaa9a
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5aaac1
push 3
push 0x65e2d0
mov ecx, dword [ebp - 0x2c]
add ecx, 1
push ecx
call fcn.005e035d
add esp, 0xc
test eax, eax
jne 0x5aaabf
mov edx, dword [ebp - 0x2c]
add edx, 3
mov dword [ebp - 0x2c], edx
jmp 0x5aaac1
jmp 0x5aaae5
jmp 0x5aaae3
cmp dword [ebp - 0xf4], 0
jne 0x5aaae1
cmp dword [ebp - 0x98], 0x5e
jne 0x5aaae1
mov dword [ebp - 0xf4], 1
jmp 0x5aaae3
jmp 0x5aaae5
jmp 0x5aaa65
cmp dword [ebp - 0x98], 0x5d
jne 0x5aab35
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x40]
and ecx, 0x2000000
je 0x5aab35
mov edx, dword [ebp - 0xf4]
neg edx
sbb edx, edx
and edx, 0xffffffa0
add edx, 0x6d
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5aab27
mov dword [ebp - 0x18], 0xffffffff
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x94], edx
jmp 0x5af3d5
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xcc], 0xffffffff
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x8c], 0
mov ecx, dword [ebp - 0x30]
add ecx, 4
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x98], 0
je 0x5ac1a7
cmp dword [ebp - 0x9c], 0
je 0x5aac78
cmp dword [ebp - 0x98], 0x7f
jle 0x5aac78
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0xc0
jl 0x5aac78
mov edx, dword [ebp - 0x98]
and edx, 0x3f
movzx eax, byte [edx + 0x661c30]
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0x104]
imul ecx, ecx, 6
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x98]
and eax, dword [edx*4 + 0x661c14]
mov ecx, dword [ebp - 0x100]
shl eax, cl
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xfc], 1
jmp 0x5aac2a
mov ecx, dword [ebp - 0xfc]
add ecx, 1
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp - 0xfc]
cmp edx, dword [ebp - 0x104]
jg 0x5aac6c
mov eax, dword [ebp - 0x100]
sub eax, 6
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0xfc]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x100]
shl edx, cl
or edx, dword [ebp - 0x98]
mov dword [ebp - 0x98], edx
jmp 0x5aac1b
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x104]
mov dword [ebp - 0x2c], eax
cmp dword [ebp + 0x28], 0
je 0x5aac94
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x3c]
mov edx, dword [ebp + 0x28]
add ecx, dword [edx]
mov eax, dword [ebp + 0x28]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x68], 0
je 0x5aacc9
cmp dword [ebp - 0x98], 0x5c
jne 0x5aacc4
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x45
jne 0x5aacc4
mov dword [ebp - 0x68], 0
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
jmp 0x5ac172
jmp 0x5aba55
cmp dword [ebp - 0x98], 0x5b
jne 0x5aaff2
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x3a
je 0x5aacfe
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x2e
je 0x5aacfe
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3d
jne 0x5aaff2
lea edx, [ebp - 0x90]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.005b08c0
add esp, 8
test eax, eax
je 0x5aaff2
mov dword [ebp - 0x134], 0
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3a
je 0x5aad49
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1f
jmp 0x5af3da
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x5e
jne 0x5aad7a
mov dword [ebp - 0x134], 1
mov dword [ebp - 0xd8], 1
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x90]
sub ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
call fcn.005b0960
add esp, 8
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
jge 0x5aadad
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1e
jmp 0x5af3da
mov ecx, dword [ebp - 0x60]
and ecx, 1
je 0x5aadc8
cmp dword [ebp - 0x10c], 2
jg 0x5aadc8
mov dword [ebp - 0x10c], 0
mov edx, dword [ebp - 0x10c]
imul edx, edx, 3
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x138]
add esi, dword [eax*4 + 0x65d7a0]
mov ecx, 8
lea edi, [ebp - 0x130]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx*4 + 0x65d7a4]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax*4 + 0x65d7a8]
mov dword [ebp - 0x110], ecx
cmp dword [ebp - 0x108], 0
jl 0x5aaee9
cmp dword [ebp - 0x110], 0
jl 0x5aae8e
mov dword [ebp - 0x98], 0
jmp 0x5aae4e
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 0x20
jge 0x5aae8c
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x138]
movzx edx, byte [ecx + eax]
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x130]
or ecx, edx
mov edx, dword [ebp - 0x98]
mov byte [ebp + edx - 0x130], cl
jmp 0x5aae3f
jmp 0x5aaee9
mov dword [ebp - 0x98], 0
jmp 0x5aaea9
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x20
jge 0x5aaee9
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x138]
movzx eax, byte [edx + ecx]
not eax
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ebp + ecx - 0x130]
and edx, eax
mov eax, dword [ebp - 0x98]
mov byte [ebp + eax - 0x130], dl
jmp 0x5aae9a
cmp dword [ebp - 0x110], 0
jge 0x5aaf00
mov ecx, dword [ebp - 0x110]
neg ecx
mov dword [ebp - 0x110], ecx
cmp dword [ebp - 0x110], 1
jne 0x5aaf1b
movzx edx, byte [ebp - 0x12f]
and edx, 0xffffffc3
mov byte [ebp - 0x12f], dl
jmp 0x5aaf34
cmp dword [ebp - 0x110], 2
jne 0x5aaf34
movzx eax, byte [ebp - 0x125]
and eax, 0x7f
mov byte [ebp - 0x125], al
cmp dword [ebp - 0x134], 0
je 0x5aaf8c
mov dword [ebp - 0x98], 0
jmp 0x5aaf58
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x20
jge 0x5aaf8a
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp + edx - 0x130]
not eax
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ebp + ecx - 0x5c]
or edx, eax
mov eax, dword [ebp - 0x98]
mov byte [ebp + eax - 0x5c], dl
jmp 0x5aaf49
jmp 0x5aafd7
mov dword [ebp - 0x98], 0
jmp 0x5aafa7
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x20
jge 0x5aafd7
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp + edx - 0x130]
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ebp + ecx - 0x5c]
or edx, eax
mov eax, dword [ebp - 0x98]
mov byte [ebp + eax - 0x5c], dl
jmp 0x5aaf98
mov ecx, dword [ebp - 0x90]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xe4], 0xa
jmp 0x5ac172
cmp dword [ebp - 0x98], 0x5c
jne 0x5aba55
push 1
mov edx, dword [ebp - 0x60]
push edx
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x30]
push ecx
mov edx, dword [ebp + 0x14]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.005af6d0
add esp, 0x14
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
je 0x5ab02f
jmp 0x5af3da
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 5
jne 0x5ab04b
mov dword [ebp - 0x98], 8
jmp 0x5ab0cd
mov eax, dword [ebp - 0x98]
neg eax
cmp eax, 0x16
jne 0x5ab064
mov dword [ebp - 0x98], 0x58
jmp 0x5ab0cd
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0x11
jne 0x5ab07d
mov dword [ebp - 0x98], 0x52
jmp 0x5ab0cd
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0x1a
jne 0x5ab0bb
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x5c
jne 0x5ab0ad
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 2]
cmp eax, 0x45
jne 0x5ab0ad
mov ecx, dword [ebp - 0x2c]
add ecx, 2
mov dword [ebp - 0x2c], ecx
jmp 0x5ab0b4
mov dword [ebp - 0x68], 1
jmp 0x5ac172
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0x19
jne 0x5ab0cd
jmp 0x5ac172
cmp dword [ebp - 0x98], 0
jge 0x5aba55
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0xe4]
add edx, 2
mov dword [ebp - 0xe4], edx
cmp dword [ebp + 0x28], 0
jne 0x5ab360
mov eax, dword [ebp - 0x98]
neg eax
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
sub ecx, 6
mov dword [ebp - 0x244], ecx
cmp dword [ebp - 0x244], 5
ja case.default.0x5ab12f
mov edx, dword [ebp - 0x244]
jmp dword [edx*4 + 0x5af4a0]
mov dword [ebp - 0x98], 0
jmp 0x5ab151
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x20
jge 0x5ab183
mov ecx, dword [ebp - 0x13c]
add ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + 0x40]
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov edx, dword [ebp - 0x98]
mov byte [ebp + edx - 0x5c], cl
jmp 0x5ab142
jmp 0x5ac172
mov dword [ebp - 0xd8], 1
mov dword [ebp - 0x98], 0
jmp 0x5ab1ad
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x20
jge 0x5ab1e1
mov ecx, dword [ebp - 0x13c]
add ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + 0x40]
not edx
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov edx, dword [ebp - 0x98]
mov byte [ebp + edx - 0x5c], cl
jmp 0x5ab19e
jmp 0x5ac172
mov dword [ebp - 0x98], 0
jmp 0x5ab201
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x20
jge 0x5ab236
mov ecx, dword [ebp - 0x13c]
add ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + 0xa0]
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov edx, dword [ebp - 0x98]
mov byte [ebp + edx - 0x5c], cl
jmp 0x5ab1f2
jmp 0x5ac172
mov dword [ebp - 0xd8], 1
mov dword [ebp - 0x98], 0
jmp 0x5ab260
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x20
jge 0x5ab297
mov ecx, dword [ebp - 0x13c]
add ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + 0xa0]
not edx
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov edx, dword [ebp - 0x98]
mov byte [ebp + edx - 0x5c], cl
jmp 0x5ab251
jmp 0x5ac172
mov dword [ebp - 0x98], 0
jmp 0x5ab2b7
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x20
jge 0x5ab2e8
mov ecx, dword [ebp - 0x13c]
add ecx, dword [ebp - 0x98]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov edx, dword [ebp - 0x98]
mov byte [ebp + edx - 0x5c], cl
jmp 0x5ab2a8
movzx eax, byte [ebp - 0x5b]
and eax, 0xfffffff7
mov byte [ebp - 0x5b], al
jmp 0x5ac172
mov dword [ebp - 0xd8], 1
mov dword [ebp - 0x98], 0
jmp 0x5ab31c
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x20
jge 0x5ab34f
mov edx, dword [ebp - 0x13c]
add edx, dword [ebp - 0x98]
movzx eax, byte [edx]
not eax
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ebp + ecx - 0x5c]
or edx, eax
mov eax, dword [ebp - 0x98]
mov byte [ebp + eax - 0x5c], dl
jmp 0x5ab30d
movzx ecx, byte [ebp - 0x5b]
or ecx, 8
mov byte [ebp - 0x5b], cl
jmp 0x5ac172
jmp 0x5ab39b
cmp dword [ebp - 0x98], 0xfffffff9
je 0x5ab396
cmp dword [ebp - 0x98], 0xfffffffa
je 0x5ab396
cmp dword [ebp - 0x98], 0xfffffff5
je 0x5ab396
cmp dword [ebp - 0x98], 0xfffffff6
je 0x5ab396
cmp dword [ebp - 0x98], 0xfffffff7
je 0x5ab396
cmp dword [ebp - 0x98], 0xfffffff8
jne 0x5ab39b
jmp 0x5ac172
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0x13
jne 0x5ab4e1
movzx eax, byte [ebp - 0x5b]
or eax, 2
mov byte [ebp - 0x5b], al
movzx ecx, byte [ebp - 0x58]
or ecx, 1
mov byte [ebp - 0x58], cl
movzx edx, byte [ebp - 0x48]
or edx, 1
mov byte [ebp - 0x48], dl
cmp dword [ebp - 0x9c], 0
je 0x5ab4dc
mov dword [ebp - 0x8c], 1
mov eax, dword [ebp - 0x10]
mov byte [eax], 1
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x1680
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov byte [eax], 1
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x180e
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov byte [eax], 2
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x2000
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
push 0x200a
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 1
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
push 0x202f
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 1
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
push 0x205f
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 1
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
push 0x3000
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5ac172
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0x12
jne 0x5ab765
mov dword [ebp - 0x98], 0
jmp 0x5ab50d
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 0x20
jge 0x5ab59e
mov dword [ebp - 0x140], 0xff
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 1
je 0x5ab54d
cmp dword [ebp - 0x248], 4
je 0x5ab55e
cmp dword [ebp - 0x248], 0x14
je 0x5ab56f
jmp 0x5ab57e
mov ecx, dword [ebp - 0x140]
xor ecx, 2
mov dword [ebp - 0x140], ecx
jmp 0x5ab57e
mov edx, dword [ebp - 0x140]
xor edx, 1
mov dword [ebp - 0x140], edx
jmp 0x5ab57e
mov eax, dword [ebp - 0x140]
xor eax, 1
mov dword [ebp - 0x140], eax
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ebp + ecx - 0x5c]
or edx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x98]
mov byte [ebp + eax - 0x5c], dl
jmp 0x5ab4fe
cmp dword [ebp - 0x9c], 0
je 0x5ab760
mov dword [ebp - 0x8c], 1
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 2
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
push pe_nt_image_headers32
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x167f
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
mov byte [edx], 2
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x1681
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
push edx
push 0x180d
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov byte [eax], 2
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x180f
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
push 0x1fff
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 2
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
push 0x200b
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x202e
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
mov byte [edx], 2
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x2030
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
push edx
push 0x205e
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov byte [eax], 2
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x2060
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
push 0x2fff
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 2
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
push 0x3001
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push bind
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5ac172
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0x15
jne 0x5ab7fd
movzx eax, byte [ebp - 0x5b]
or eax, 4
mov byte [ebp - 0x5b], al
movzx ecx, byte [ebp - 0x5b]
or ecx, 8
mov byte [ebp - 0x5b], cl
movzx edx, byte [ebp - 0x5b]
or edx, 0x10
mov byte [ebp - 0x5b], dl
movzx eax, byte [ebp - 0x5b]
or eax, 0x20
mov byte [ebp - 0x5b], al
movzx ecx, byte [ebp - 0x4c]
or ecx, 0x20
mov byte [ebp - 0x4c], cl
cmp dword [ebp - 0x9c], 0
je 0x5ab7f8
mov dword [ebp - 0x8c], 1
mov edx, dword [ebp - 0x10]
mov byte [edx], 2
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x2028
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
push edx
push 0x2029
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5ac172
mov eax, dword [ebp - 0x98]
neg eax
cmp eax, 0x14
jne 0x5ab963
mov dword [ebp - 0x98], 0
jmp 0x5ab829
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x20
jge 0x5ab8cd
mov dword [ebp - 0x144], 0xff
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 1
je 0x5ab860
cmp dword [ebp - 0x24c], 0x10
je 0x5ab89e
jmp 0x5ab8ad
mov eax, dword [ebp - 0x144]
xor eax, 4
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x144]
xor ecx, 8
mov dword [ebp - 0x144], ecx
mov edx, dword [ebp - 0x144]
xor edx, 0x10
mov dword [ebp - 0x144], edx
mov eax, dword [ebp - 0x144]
xor eax, 0x20
mov dword [ebp - 0x144], eax
jmp 0x5ab8ad
mov ecx, dword [ebp - 0x144]
xor ecx, 0x20
mov dword [ebp - 0x144], ecx
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp + edx - 0x5c]
or eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x98]
mov byte [ebp + ecx - 0x5c], al
jmp 0x5ab81a
cmp dword [ebp - 0x9c], 0
je 0x5ab95e
mov dword [ebp - 0x8c], 1
mov edx, dword [ebp - 0x10]
mov byte [edx], 2
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
push pe_nt_image_headers32
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
push edx
push 0x2027
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov byte [eax], 2
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x2029
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
push bind
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5ac172
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0x10
je 0x5ab981
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0xf
jne 0x5aba24
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x14c]
push ecx
lea edx, [ebp - 0x148]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.005afcb0
add esp, 0x10
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x150], 0
jge 0x5ab9b3
jmp 0x5af3da
mov dword [ebp - 0x8c], 1
mov ecx, dword [ebp - 0x98]
neg ecx
xor edx, edx
cmp ecx, 0x10
sete dl
sub edx, dword [ebp - 0x148]
neg edx
sbb edx, edx
add edx, 4
mov eax, dword [ebp - 0x10]
mov byte [eax], dl
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 0x150]
mov byte [edx], al
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 0x14c]
mov byte [edx], al
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0xe4]
sub edx, 2
mov dword [ebp - 0xe4], edx
jmp 0x5ac172
mov eax, dword [ebp - 0x60]
and eax, 0x40
je 0x5aba3a
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 7
jmp 0x5af3da
mov edx, dword [ebp - 0xe4]
sub edx, 2
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
mov dword [ebp - 0x98], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x5c
jne 0x5aba7f
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 2]
cmp edx, 0x45
jne 0x5aba7f
mov dword [ebp - 0x68], 0
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x2c], eax
jmp 0x5aba55
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0xf8], ecx
cmp dword [ebp - 0x98], 0xd
je 0x5aba9a
cmp dword [ebp - 0x98], 0xa
jne 0x5abaa9
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x44]
or eax, 0x20
mov ecx, dword [ebp + 0x24]
mov dword [ecx + 0x44], eax
cmp dword [ebp - 0x68], 0
jne 0x5abfd8
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x2d
jne 0x5abfd8
mov ecx, dword [ebp - 0x2c]
add ecx, 2
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0x5c
jne 0x5abaee
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x45
jne 0x5abaee
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x2c], eax
jmp 0x5abacc
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x5c
jne 0x5abb3b
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x51
jne 0x5abb3b
mov edx, dword [ebp - 0x2c]
add edx, 2
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, 0x5c
jne 0x5abb30
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x45
jne 0x5abb30
mov ecx, dword [ebp - 0x2c]
add ecx, 2
mov dword [ebp - 0x2c], ecx
jmp 0x5abaee
mov dword [ebp - 0x68], 1
jmp 0x5abb3b
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
test eax, eax
je 0x5abb56
cmp dword [ebp - 0x68], 0
jne 0x5abb64
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x5d
jne 0x5abb64
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], eax
jmp 0x5abfd8
cmp dword [ebp - 0x9c], 0
je 0x5abc3e
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
mov dword [ebp - 0x154], edx
cmp dword [ebp - 0x154], 0xc0
jl 0x5abc3c
mov eax, dword [ebp - 0x154]
and eax, 0x3f
movzx ecx, byte [eax + 0x661c30]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x160]
imul edx, edx, 6
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x154]
and edx, dword [eax*4 + 0x661c14]
mov ecx, dword [ebp - 0x15c]
shl edx, cl
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x158], 1
jmp 0x5abbee
mov eax, dword [ebp - 0x158]
add eax, 1
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x158]
cmp ecx, dword [ebp - 0x160]
jg 0x5abc30
mov edx, dword [ebp - 0x15c]
sub edx, 6
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x158]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x15c]
shl edx, cl
or edx, dword [ebp - 0x154]
mov dword [ebp - 0x154], edx
jmp 0x5abbdf
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x160]
mov dword [ebp - 0x2c], eax
jmp 0x5abc4a
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
mov dword [ebp - 0x154], edx
cmp dword [ebp - 0x68], 0
jne 0x5abce7
cmp dword [ebp - 0x154], 0x5c
jne 0x5abce7
push 1
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x30]
push edx
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x2c]
push ecx
call fcn.005af6d0
add esp, 0x14
mov dword [ebp - 0x154], eax
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
je 0x5abc91
jmp 0x5af3da
cmp dword [ebp - 0x154], 0
jge 0x5abce7
cmp dword [ebp - 0x154], 0xfffffffb
jne 0x5abcaf
mov dword [ebp - 0x154], 8
jmp 0x5abce7
cmp dword [ebp - 0x154], 0xffffffea
jne 0x5abcc4
mov dword [ebp - 0x154], 0x58
jmp 0x5abce7
cmp dword [ebp - 0x154], 0xffffffef
jne 0x5abcd9
mov dword [ebp - 0x154], 0x52
jmp 0x5abce7
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], eax
jmp 0x5abfd8
mov ecx, dword [ebp - 0x154]
cmp ecx, dword [ebp - 0x98]
jge 0x5abd03
mov edx, dword [ebp + 0x14]
mov dword [edx], 8
jmp 0x5af3da
mov eax, dword [ebp - 0x154]
cmp eax, dword [ebp - 0x98]
jne 0x5abd16
jmp 0x5abfd8
cmp dword [ebp - 0x154], 0xd
je 0x5abd28
cmp dword [ebp - 0x154], 0xa
jne 0x5abd37
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x44]
or edx, 0x20
mov eax, dword [ebp + 0x24]
mov dword [eax + 0x44], edx
cmp dword [ebp - 0x9c], 0
je 0x5abee9
cmp dword [ebp - 0x154], 0xff
jg 0x5abd69
mov ecx, dword [ebp - 0x60]
and ecx, 1
je 0x5abee9
cmp dword [ebp - 0x154], 0x7f
jle 0x5abee9
mov dword [ebp - 0x8c], 1
mov edx, dword [ebp - 0x60]
and edx, 1
je 0x5abea3
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x170], ecx
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x16c]
push eax
mov ecx, dword [ebp - 0x170]
push ecx
lea edx, [ebp - 0x168]
push edx
call fcn.005b0cf0
add esp, 0x10
test eax, eax
je 0x5abea3
mov eax, dword [ebp - 0x16c]
cmp eax, dword [ebp - 0x98]
jb 0x5abde1
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x154]
ja 0x5abde1
jmp 0x5abd97
mov edx, dword [ebp - 0x16c]
cmp edx, dword [ebp - 0x98]
jae 0x5abe0e
mov eax, dword [ebp - 0x98]
sub eax, 1
cmp dword [ebp - 0x164], eax
jb 0x5abe0e
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x98], ecx
jmp 0x5abd97
mov edx, dword [ebp - 0x164]
cmp edx, dword [ebp - 0x154]
jbe 0x5abe3e
mov eax, dword [ebp - 0x154]
add eax, 1
cmp dword [ebp - 0x16c], eax
ja 0x5abe3e
mov ecx, dword [ebp - 0x164]
mov dword [ebp - 0x154], ecx
jmp 0x5abd97
mov edx, dword [ebp - 0x16c]
cmp edx, dword [ebp - 0x164]
jne 0x5abe5d
mov eax, dword [ebp - 0x10]
mov byte [eax], 1
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x5abe85
mov edx, dword [ebp - 0x10]
mov byte [edx], 2
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x16c]
push edx
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x164]
push ecx
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5abd97
mov edx, dword [ebp - 0x10]
mov byte [edx], 2
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x154]
push ecx
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5ac172
mov edx, dword [ebp - 0x154]
sub edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xe4]
lea ecx, [eax + edx + 1]
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0xcc], edx
cmp dword [ebp + 0x28], 0
jne 0x5abfd3
jmp 0x5abf2c
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x98]
cmp ecx, dword [ebp - 0x154]
jg 0x5abfd3
mov eax, dword [ebp - 0x98]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x98]
and ecx, 7
mov edx, 1
shl edx, cl
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov eax, dword [ebp - 0x98]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov byte [ebp + eax - 0x5c], cl
mov edx, dword [ebp - 0x60]
and edx, 1
je 0x5abfce
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x98]
movzx eax, byte [ecx + edx]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x174]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x174]
and ecx, 7
mov edx, 1
shl edx, cl
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov eax, dword [ebp - 0x174]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov byte [ebp + eax - 0x5c], cl
jmp 0x5abf1d
jmp 0x5ac172
cmp dword [ebp - 0x9c], 0
je 0x5ac0c7
cmp dword [ebp - 0x98], 0xff
jg 0x5ac00a
mov edx, dword [ebp - 0x60]
and edx, 1
je 0x5ac0c7
cmp dword [ebp - 0x98], 0x7f
jle 0x5ac0c7
mov dword [ebp - 0x8c], 1
mov eax, dword [ebp - 0x10]
mov byte [eax], 1
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x98]
push eax
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x60]
and ecx, 1
je 0x5ac0c2
mov eax, dword [ebp - 0x98]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x663510]
shl edx, 7
mov eax, dword [ebp - 0x98]
and eax, 0x8000007f
jns 0x5ac06f
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx ecx, word [edx*2 + 0x665710]
mov edx, dword [ebp - 0x98]
add edx, dword [ecx*8 + 0x6626cc]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
cmp eax, dword [ebp - 0x98]
je 0x5ac0c2
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 1
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x178]
push ecx
call fcn.005d0b70
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x5ac172
mov eax, dword [ebp - 0x98]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x98]
and ecx, 7
mov edx, 1
shl edx, cl
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov eax, dword [ebp - 0x98]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov byte [ebp + eax - 0x5c], cl
mov edx, dword [ebp - 0x60]
and edx, 1
je 0x5ac157
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x98]
movzx eax, byte [ecx + edx]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x98]
and ecx, 7
mov edx, 1
shl edx, cl
movzx ecx, byte [ebp + eax - 0x5c]
or ecx, edx
mov eax, dword [ebp - 0x98]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov byte [ebp + eax - 0x5c], cl
mov edx, dword [ebp - 0xe4]
add edx, 1
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x5ac1a7
cmp dword [ebp - 0x98], 0x5d
jne 0x5aab93
cmp dword [ebp - 0x68], 0
jne 0x5aab93
cmp dword [ebp - 0x98], 0
jne 0x5ac1be
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 6
jmp 0x5af3da
cmp dword [ebp - 0xe4], 1
jne 0x5ac292
cmp dword [ebp - 0x8c], 0
jne 0x5ac292
cmp dword [ebp - 0x9c], 0
je 0x5ac1fa
cmp dword [ebp - 0xf4], 0
je 0x5ac1fa
cmp dword [ebp - 0xcc], 0x80
jge 0x5ac292
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xf4], 0
je 0x5ac247
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5ac216
mov dword [ebp - 0x18], 0xffffffff
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x1e
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0xcc]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5af3d5
cmp dword [ebp - 0x9c], 0
je 0x5ac277
cmp dword [ebp - 0xcc], 0x7f
jle 0x5ac277
lea eax, [ebp - 0xb4]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.005d0b70
add esp, 8
mov dword [ebp - 0xb8], eax
jmp 0x5ac28d
mov dl, byte [ebp - 0xcc]
mov byte [ebp - 0xb4], dl
mov dword [ebp - 0xb8], 1
jmp 0x5af2b8
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5ac29f
mov dword [ebp - 0x18], 0xffffffff
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0x8c], 0
je 0x5ac37e
cmp dword [ebp - 0xd8], 0
jne 0x5ac37e
mov edx, dword [ebp - 0x10]
mov byte [edx], 0
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x50
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
add eax, 2
mov dword [ebp - 0x30], eax
xor ecx, ecx
cmp dword [ebp - 0xf4], 0
setne cl
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
cmp dword [ebp - 0xe4], 0
jle 0x5ac352
mov eax, dword [ebp - 0x30]
movzx ecx, byte [eax]
or ecx, 2
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x30]
add eax, 0x20
push eax
call fcn.005af620
add esp, 0xc
mov ecx, 8
lea esi, [ebp - 0x5c]
mov edi, dword [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x10]
add ecx, 0x20
mov dword [ebp - 0x30], ecx
jmp 0x5ac358
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 4]
sar eax, 8
mov ecx, dword [ebp - 4]
mov byte [ecx + 1], al
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 4]
and edx, 0xff
mov eax, dword [ebp - 4]
mov byte [eax + 2], dl
jmp 0x5af3d5
mov ecx, dword [ebp - 0xf4]
xor edx, edx
cmp ecx, dword [ebp - 0xd8]
setne dl
add edx, 0x4e
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0xf4], 0
je 0x5ac3ef
cmp dword [ebp + 0x28], 0
jne 0x5ac3ed
mov dword [ebp - 0x98], 0
jmp 0x5ac3ca
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 0x20
jge 0x5ac3ed
mov eax, dword [ebp - 0x98]
movzx ecx, byte [ebp + eax - 0x5c]
not ecx
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x98]
mov byte [edx], cl
jmp 0x5ac3bb
jmp 0x5ac3fc
mov ecx, 8
lea esi, [ebp - 0x5c]
mov edi, dword [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x30]
add eax, 0x20
mov dword [ebp - 0x30], eax
jmp 0x5af3d5
cmp dword [ebp - 0xd0], 0
jne 0x5ac418
jmp case.0x5aa8dd.1
mov ecx, dword [ebp + 0x14]
push ecx
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x2c]
add ecx, 1
push ecx
call fcn.005aff50
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
je 0x5ac443
jmp 0x5af3da
jmp 0x5ac473
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0xffffffff
jmp 0x5ac473
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x20], 0xffffffff
jmp 0x5ac473
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 1
cmp dword [ebp - 4], 0
jne 0x5ac487
mov eax, dword [ebp + 0x14]
mov dword [eax], 9
jmp 0x5af3da
cmp dword [ebp - 0x28], 0
jne 0x5ac49c
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
and eax, 0x200
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0xf0], 0
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
jne 0x5ac4f3
mov dword [ebp - 0x88], 0
mov dword [ebp - 0xf0], 1
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
jmp 0x5ac51c
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x3f
jne 0x5ac513
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5ac51c
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x1c
je 0x5ac536
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x1d
jne 0x5ac641
cmp dword [ebp - 0x9c], 0
je 0x5ac5bb
mov edx, dword [ebp - 0x30]
movzx eax, byte [edx - 1]
and eax, 0x80
je 0x5ac5bb
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x17c]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x5ac57f
mov ecx, dword [ebp - 0x17c]
sub ecx, 1
mov dword [ebp - 0x17c], ecx
jmp 0x5ac559
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x17c]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x17c]
push ecx
lea edx, [ebp - 0x70]
push edx
call fcn.005e3990
add esp, 0xc
mov eax, dword [ebp - 0x98]
or eax, 0x80
mov dword [ebp - 0x98], eax
jmp 0x5ac5e0
mov ecx, dword [ebp - 0x30]
movzx edx, byte [ecx - 1]
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x28], 1
jle 0x5ac5e0
mov eax, dword [ebp - 0x98]
or eax, dword [ebp - 0x74]
mov ecx, dword [ebp + 0x24]
or eax, dword [ecx + 0x48]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0xf0], 0
jne 0x5ac637
cmp dword [ebp - 0x20], 0
jge 0x5ac637
mov edx, dword [ebp + 0x24]
push edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x2c]
add ecx, 1
push ecx
lea edx, [ebp - 0x70]
push edx
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
push eax
call fcn.005b0df0
add esp, 0x1c
test eax, eax
je 0x5ac637
mov dword [ebp - 0x88], 0
mov dword [ebp - 0xf0], 1
jmp 0x5ac729
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x1e
jne 0x5ac6b7
mov dword [ebp - 0x38], 0xd
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 1]
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0xf0], 0
jne 0x5ac6b0
cmp dword [ebp - 0x20], 0
jge 0x5ac6b0
mov edx, dword [ebp + 0x24]
push edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x2c]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x9c]
push edx
mov eax, dword [ebp - 0x98]
push eax
push 0x1e
call fcn.005b0df0
add esp, 0x1c
test eax, eax
je 0x5ac6b0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0xf0], 1
jmp 0x5ac729
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x17
jge 0x5acb0d
mov dword [ebp - 0x38], 0x1a
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0xf0], 0
jne 0x5ac729
cmp dword [ebp - 0x20], 0
jge 0x5ac729
mov edx, dword [ebp + 0x24]
push edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x2c]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x9c]
push edx
push 0
mov eax, dword [ebp - 0x98]
push eax
call fcn.005b0df0
add esp, 0x1c
test eax, eax
je 0x5ac729
mov dword [ebp - 0x88], 0
mov dword [ebp - 0xf0], 1
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x10
je 0x5ac73f
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0xf
jne 0x5ac75b
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 2]
mov dword [ebp - 0x188], edx
jmp 0x5ac771
mov dword [ebp - 0x188], 0xffffffff
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x20], 0
jne 0x5ac78b
jmp 0x5ad661
cmp dword [ebp - 0x20], 1
je 0x5ac7a0
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x44]
or ecx, 1
mov edx, dword [ebp + 0x24]
mov dword [edx + 0x44], ecx
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x28], 0
jne 0x5ac831
cmp dword [ebp - 0x20], 0xffffffff
jne 0x5ac7d4
mov ecx, dword [ebp - 0x88]
add ecx, 0x1f
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x5ac82c
cmp dword [ebp - 0x20], 1
jne 0x5ac7f3
mov ecx, dword [ebp - 0x88]
add ecx, 0x23
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x5ac82c
mov ecx, dword [ebp - 0x88]
add ecx, 0x25
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x20]
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x20]
and eax, 0xff
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], al
mov edx, dword [ebp - 0x30]
add edx, 2
mov dword [ebp - 0x30], edx
jmp 0x5aca83
cmp dword [ebp - 0x28], 1
jne 0x5ac8ae
cmp dword [ebp - 0x20], 0xffffffff
jne 0x5ac856
mov eax, dword [ebp - 0x88]
add eax, 0x21
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5ac8a9
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x20], 1
jne 0x5ac86a
jmp 0x5ad661
mov ecx, dword [ebp - 0x88]
add ecx, 0x25
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x20]
sub ecx, 1
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x20]
sub eax, 1
and eax, 0xff
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], al
mov edx, dword [ebp - 0x30]
add edx, 2
mov dword [ebp - 0x30], edx
jmp 0x5aca83
mov eax, dword [ebp - 0x38]
add eax, 0x27
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x28]
sar eax, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x20], 0
jge 0x5ac990
cmp dword [ebp - 0x9c], 0
je 0x5ac92f
cmp dword [ebp - 0x98], 0x80
jl 0x5ac92f
mov edx, dword [ebp - 0x98]
and edx, 7
push edx
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.005e3990
add esp, 0xc
mov edx, dword [ebp - 0x98]
and edx, 7
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x30], edx
jmp 0x5ac974
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x98]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x184], 0
jl 0x5ac974
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x184]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x188]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x88]
add eax, 0x1f
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5aca83
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x28]
je 0x5aca83
cmp dword [ebp - 0x9c], 0
je 0x5ac9dc
cmp dword [ebp - 0x98], 0x80
jl 0x5ac9dc
mov ecx, dword [ebp - 0x98]
and ecx, 7
push ecx
lea edx, [ebp - 0x70]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.005e3990
add esp, 0xc
mov ecx, dword [ebp - 0x98]
and ecx, 7
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
jmp 0x5ac9f0
mov edx, dword [ebp - 0x30]
mov al, byte [ebp - 0x98]
mov byte [edx], al
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x184], 0
jl 0x5aca21
mov edx, dword [ebp - 0x30]
mov al, byte [ebp - 0x184]
mov byte [edx], al
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov al, byte [ebp - 0x188]
mov byte [edx], al
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 1
jne 0x5aca49
mov eax, dword [ebp - 0x88]
add eax, 0x23
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5aca83
mov eax, dword [ebp - 0x88]
add eax, 0x25
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x20]
sar eax, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x9c], 0
je 0x5acac3
cmp dword [ebp - 0x98], 0x80
jl 0x5acac3
mov edx, dword [ebp - 0x98]
and edx, 7
push edx
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.005e3990
add esp, 0xc
mov edx, dword [ebp - 0x98]
and edx, 7
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x30], edx
jmp 0x5acad7
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x98]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x184], 0
jl 0x5acb08
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x184]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x188]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5ad423
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x4e
je 0x5acb3d
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x4f
je 0x5acb3d
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x50
je 0x5acb3d
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x51
jne 0x5acc47
cmp dword [ebp - 0x20], 0
jne 0x5acb4e
mov edx, dword [ebp - 4]
mov dword [ebp - 0x30], edx
jmp 0x5ad661
cmp dword [ebp - 0x20], 1
je 0x5acb63
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x44]
or ecx, 1
mov edx, dword [ebp + 0x24]
mov dword [edx + 0x44], ecx
cmp dword [ebp - 0x28], 0
jne 0x5acb8b
cmp dword [ebp - 0x20], 0xffffffff
jne 0x5acb8b
mov eax, dword [ebp - 0x88]
add eax, 0x46
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5acc42
cmp dword [ebp - 0x28], 1
jne 0x5acbb3
cmp dword [ebp - 0x20], 0xffffffff
jne 0x5acbb3
mov eax, dword [ebp - 0x88]
add eax, 0x48
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5acc42
cmp dword [ebp - 0x28], 0
jne 0x5acbd8
cmp dword [ebp - 0x20], 1
jne 0x5acbd8
mov eax, dword [ebp - 0x88]
add eax, 0x4a
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x5acc42
mov eax, dword [ebp - 0x88]
add eax, 0x4c
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x28]
sar eax, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x20], 0xffffffff
jne 0x5acc1f
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 0x20]
sar edx, 8
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], cl
mov eax, dword [ebp - 0x30]
add eax, 2
mov dword [ebp - 0x30], eax
jmp 0x5ad423
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x5e
je 0x5acc77
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x5f
je 0x5acc77
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x5d
je 0x5acc77
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x60
jne 0x5ad403
mov dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 4]
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x18c], 0
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x60
jne 0x5accbc
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 3]
cmp ecx, 0x66
jne 0x5accbc
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x37
jmp 0x5af3da
cmp dword [ebp - 0x20], 0xffffffff
jne 0x5acd0d
mov eax, dword [ebp - 4]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x19c]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0x19c]
movzx ecx, byte [eax + 2]
or edx, ecx
add edx, dword [ebp - 0x19c]
mov dword [ebp - 0x19c], edx
mov edx, dword [ebp - 0x19c]
movzx eax, byte [edx]
cmp eax, 0x55
jne 0x5acccb
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x19c]
mov dword [ebp - 0x198], ecx
cmp dword [ebp - 0x28], 0
jne 0x5ace7b
cmp dword [ebp - 0x20], 1
jg 0x5acd9c
mov edx, dword [ebp - 0x30]
mov byte [edx], 0
mov eax, dword [ebp - 0xa0]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp - 0x9c]
push edx
push 1
mov eax, dword [ebp - 4]
push eax
call fcn.005b09e0
add esp, 0x14
mov ecx, dword [ebp - 0x194]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 4]
add eax, 1
push eax
call fcn.005af620
add esp, 0xc
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x20], 0
jne 0x5acd80
mov edx, dword [ebp - 4]
mov byte [edx], 0x6f
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
jmp 0x5ad661
mov ecx, dword [ebp - 0x88]
add ecx, 0x67
mov edx, dword [ebp - 4]
mov byte [edx], cl
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
jmp 0x5ace6d
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0
mov edx, dword [ebp - 0xa0]
push edx
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [ebp - 0x9c]
push ecx
push 4
mov edx, dword [ebp - 4]
push edx
call fcn.005b09e0
add esp, 0x14
mov eax, dword [ebp - 0x194]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
add edx, 4
push edx
call fcn.005af620
add esp, 0xc
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x88]
add ecx, 0x67
mov edx, dword [ebp - 4]
mov byte [edx], cl
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov byte [ecx], 0x5e
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 0x18c], 0
jne 0x5ace20
mov dword [ebp - 0x250], 0
jmp 0x5ace2f
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x18c]
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x250]
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0x1a0]
sar eax, 8
mov ecx, dword [ebp - 4]
mov byte [ecx], al
mov edx, dword [ebp - 0x1a0]
and edx, 0xff
mov eax, dword [ebp - 4]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 4]
add ecx, 2
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x20]
sub edx, 1
mov dword [ebp - 0x20], edx
jmp 0x5ad011
cmp dword [ebp - 0x28], 1
jle 0x5ad002
cmp dword [ebp + 0x28], 0
je 0x5acef2
mov eax, dword [ebp - 0x28]
sub eax, 1
imul eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x28]
sub ecx, 1
mov dword [ebp - 0x254], ecx
fild dword [ebp - 0x254]
fimul dword [ebp - 0x1c]
fcomp qword [0x65e2c8]
fnstsw ax
test ah, 0x41
je 0x5acecf
mov edx, dword [ebp + 0x28]
mov eax, 0x7fffffeb
sub eax, dword [edx]
cmp eax, dword [ebp - 0x1a4]
jge 0x5acedd
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x5af3da
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
add eax, dword [ebp - 0x1a4]
mov ecx, dword [ebp + 0x28]
mov dword [ecx], eax
jmp 0x5ad002
cmp dword [ebp - 8], 0
je 0x5acf04
cmp dword [ebp - 0x7c], 0
jge 0x5acf04
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x190], 1
jmp 0x5acf1f
mov eax, dword [ebp - 0x190]
add eax, 1
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x190]
cmp ecx, dword [ebp - 0x28]
jge 0x5ad002
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x194]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.005e3990
add esp, 0xc
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x1a8], ecx
jmp 0x5acf6e
mov edx, dword [ebp - 0x1a8]
add edx, 2
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x1a8]
cmp eax, dword [ebp - 0x1ac]
jae 0x5acfe5
mov ecx, dword [ebp - 0x1a8]
movzx edx, byte [ecx]
shl edx, 8
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 1]
or edx, ecx
add edx, dword [ebp - 0x194]
sar edx, 8
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x20]
mov byte [ecx], dl
mov edx, dword [ebp - 0x1a8]
movzx eax, byte [edx]
shl eax, 8
mov ecx, dword [ebp - 0x1a8]
movzx edx, byte [ecx + 1]
or eax, edx
add eax, dword [ebp - 0x194]
and eax, 0xff
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x20]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x20]
add ecx, 2
mov edx, dword [ebp + 0x24]
mov dword [edx + 0x20], ecx
jmp 0x5acf5f
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x194]
mov dword [ebp - 0x30], ecx
jmp 0x5acf10
cmp dword [ebp - 0x20], 0
jle 0x5ad011
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0
jl 0x5ad32c
cmp dword [ebp + 0x28], 0
je 0x5ad093
cmp dword [ebp - 0x20], 0
jle 0x5ad093
mov eax, dword [ebp - 0x1c]
add eax, 7
imul eax, dword [ebp - 0x20]
sub eax, 6
mov dword [ebp - 0x1b0], eax
fild dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
add ecx, 7
mov dword [ebp - 0x258], ecx
fild dword [ebp - 0x258]
fmulp st(1)
fcomp qword [0x65e2c8]
fnstsw ax
test ah, 0x41
je 0x5ad070
mov edx, dword [ebp + 0x28]
mov eax, 0x7fffffeb
sub eax, dword [edx]
cmp eax, dword [ebp - 0x1b0]
jge 0x5ad07e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x5af3da
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
add eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp + 0x28]
mov dword [ecx], eax
jmp 0x5ad24b
mov edx, dword [ebp - 0x20]
sub edx, 1
mov dword [ebp - 0x190], edx
jmp 0x5ad0b0
mov eax, dword [ebp - 0x190]
sub eax, 1
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0
jl 0x5ad24b
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x88]
add eax, 0x67
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x190], 0
je 0x5ad15a
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x5e
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x18c], 0
jne 0x5ad10d
mov dword [ebp - 0x25c], 0
jmp 0x5ad11c
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x18c]
mov dword [ebp - 0x25c], edx
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x1bc]
sar edx, 8
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x1bc]
and ecx, 0xff
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], cl
mov eax, dword [ebp - 0x30]
add eax, 2
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x194]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.005e3990
add esp, 0xc
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x1b4], ecx
jmp 0x5ad18e
mov edx, dword [ebp - 0x1b4]
add edx, 2
mov dword [ebp - 0x1b4], edx
mov eax, dword [ebp - 0x1b4]
cmp eax, dword [ebp - 0x1b8]
jae 0x5ad22e
mov ecx, dword [ebp - 0x1b4]
movzx edx, byte [ecx]
shl edx, 8
mov eax, dword [ebp - 0x1b4]
movzx ecx, byte [eax + 1]
or edx, ecx
add edx, dword [ebp - 0x194]
mov eax, dword [ebp - 0x190]
neg eax
sbb eax, eax
and eax, 3
add eax, 1
add edx, eax
sar edx, 8
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x20]
mov byte [eax], dl
mov ecx, dword [ebp - 0x1b4]
movzx edx, byte [ecx]
shl edx, 8
mov eax, dword [ebp - 0x1b4]
movzx ecx, byte [eax + 1]
or edx, ecx
add edx, dword [ebp - 0x194]
mov eax, dword [ebp - 0x190]
neg eax
sbb eax, eax
and eax, 3
add eax, 1
add edx, eax
and edx, 0xff
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x20]
mov byte [eax + 1], dl
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x20]
add edx, 2
mov eax, dword [ebp + 0x24]
mov dword [eax + 0x20], edx
jmp 0x5ad17f
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x194]
mov dword [ebp - 0x30], edx
jmp 0x5ad0a1
cmp dword [ebp - 0x18c], 0
je 0x5ad327
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x18c]
add eax, 1
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x1c4]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x1c4]
movzx edx, byte [ecx + 2]
or eax, edx
mov dword [ebp - 0x1c0], eax
jne 0x5ad2a6
mov dword [ebp - 0x260], 0
jmp 0x5ad2b8
mov eax, dword [ebp - 0x18c]
sub eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x260], eax
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x55
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x1c8]
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x1c8]
and eax, 0xff
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], al
mov edx, dword [ebp - 0x30]
add edx, 2
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x1c8]
sar eax, 8
mov ecx, dword [ebp - 0x1c4]
mov byte [ecx + 1], al
mov edx, dword [ebp - 0x1c8]
and edx, 0xff
mov eax, dword [ebp - 0x1c4]
mov byte [eax + 2], dl
jmp 0x5ad24b
jmp 0x5ad401
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x198]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x1d0]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x1d0]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp - 0x1d0]
sub ecx, eax
mov dword [ebp - 0x1cc], ecx
mov edx, dword [ebp - 0x88]
add edx, 0x56
mov eax, dword [ebp - 0x1d0]
mov byte [eax], dl
cmp dword [ebp + 0x28], 0
jne 0x5ad401
mov ecx, dword [ebp - 0x1cc]
movzx edx, byte [ecx]
cmp edx, 0x5d
je 0x5ad401
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x9c]
push ecx
mov edx, dword [ebp - 0x1d0]
push edx
mov eax, dword [ebp - 0x1d4]
push eax
call fcn.005b03e0
add esp, 0xc
test eax, eax
je 0x5ad3ce
mov ecx, dword [ebp - 0x1cc]
movzx edx, byte [ecx]
add edx, 3
mov eax, dword [ebp - 0x1cc]
mov byte [eax], dl
jmp 0x5ad401
mov ecx, dword [ebp - 0x1d4]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0x1d4]
movzx ecx, byte [eax + 2]
or edx, ecx
add edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x1d4], edx
mov edx, dword [ebp - 0x1d4]
movzx eax, byte [edx]
cmp eax, 0x54
je 0x5ad397
jmp 0x5ad423
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x6d
jne 0x5ad415
jmp 0x5ad661
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xb
jmp 0x5af3da
cmp dword [ebp - 0xf0], 0
je 0x5ad661
mov ecx, dword [ebp - 0xa4]
movzx edx, byte [ecx]
cmp edx, 0x27
je 0x5ad45a
mov eax, dword [ebp - 0xa4]
movzx ecx, byte [eax]
cmp ecx, 0x41
je 0x5ad45a
mov edx, dword [ebp - 0xa4]
movzx eax, byte [edx]
cmp eax, 0x34
jne 0x5ad4be
mov ecx, dword [ebp - 0xa4]
movzx edx, byte [ecx]
cmp edx, 0x41
jne 0x5ad492
mov eax, dword [ebp - 0xa4]
movzx ecx, byte [eax + 3]
cmp ecx, 0x10
je 0x5ad486
mov edx, dword [ebp - 0xa4]
movzx eax, byte [edx + 3]
cmp eax, 0xf
jne 0x5ad492
mov dword [ebp - 0x264], 2
jmp 0x5ad49c
mov dword [ebp - 0x264], 0
mov ecx, dword [ebp - 0xa4]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x661b70]
add eax, dword [ebp - 0x264]
add eax, dword [ebp - 0xa4]
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x1d8], ecx
cmp dword [ebp - 0x1d8], 0
jle 0x5ad661
mov edx, dword [ebp - 0xa4]
movzx eax, byte [edx]
mov dword [ebp - 0x268], eax
mov ecx, dword [ebp - 0x268]
sub ecx, 0x1f
mov dword [ebp - 0x268], ecx
cmp dword [ebp - 0x268], 0x20
ja case.0x5ad512.1
mov edx, dword [ebp - 0x268]
movzx eax, byte [edx + 0x5af4ec]
jmp dword [eax*4 + 0x5af4b8]
mov ecx, dword [ebp - 0xa4]
mov byte [ecx], 0x28
jmp 0x5ad661
mov edx, dword [ebp - 0xa4]
mov byte [edx], 0x29
jmp 0x5ad661
mov eax, dword [ebp - 0xa4]
mov byte [eax], 0x2a
jmp 0x5ad661
mov ecx, dword [ebp - 0xa4]
mov byte [ecx], 0x2b
jmp 0x5ad661
mov edx, dword [ebp - 0xa4]
mov byte [edx], 0x42
jmp 0x5ad661
mov eax, dword [ebp - 0xa4]
mov byte [eax], 0x43
jmp 0x5ad661
mov ecx, dword [ebp - 0xa4]
mov byte [ecx], 0x44
jmp 0x5ad661
mov edx, dword [ebp - 0xa4]
mov byte [edx], 0x45
jmp 0x5ad661
mov eax, dword [ebp - 0xa4]
mov byte [eax], 0x35
jmp 0x5ad661
mov ecx, dword [ebp - 0xa4]
mov byte [ecx], 0x36
jmp 0x5ad661
mov edx, dword [ebp - 0xa4]
mov byte [edx], 0x37
jmp 0x5ad661
mov eax, dword [ebp - 0xa4]
mov byte [eax], 0x38
jmp 0x5ad661
mov ecx, dword [ebp - 0x1d8]
push ecx
mov edx, dword [ebp - 0xa4]
push edx
mov eax, dword [ebp - 0xa4]
add eax, 3
push eax
call fcn.005af620
add esp, 0xc
mov ecx, dword [ebp - 0x30]
add ecx, 3
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x1d8]
add edx, 3
mov dword [ebp - 0x1d8], edx
mov eax, dword [ebp - 0xa4]
mov byte [eax], 0x5d
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x55
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x1d8]
sar eax, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0x1d8]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x1d8]
sar edx, 8
mov eax, dword [ebp - 0xa4]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 0x1d8]
and ecx, 0xff
mov edx, dword [ebp - 0xa4]
mov byte [edx + 2], cl
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x48]
or ecx, dword [ebp - 0x64]
mov edx, dword [ebp + 0x24]
mov dword [edx + 0x48], ecx
jmp 0x5af3d5
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0x24], 0x5f
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0xec], 0
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x2a
jne 0x5ad83f
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0xc]
movzx ecx, byte [eax + ecx]
and ecx, 2
je 0x5ad83f
mov dword [ebp - 0x1dc], str.ACCEPT
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 2
je 0x5ad721
jmp 0x5ad701
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x3a
jne 0x5ad73a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3b
jmp 0x5af3da
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x29
je 0x5ad753
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3c
jmp 0x5af3da
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x1e8]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1e0], 0
jmp 0x5ad77d
mov edx, dword [ebp - 0x1e0]
add edx, 1
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x1e0]
cmp eax, dword [0x65d730]
jge 0x5ad819
mov ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x1e4]
cmp edx, dword [ecx*8 + 0x65d6f8]
jne 0x5ad7f7
mov eax, dword [ebp - 0x1e4]
push eax
mov ecx, dword [ebp - 0x1dc]
push ecx
mov edx, dword [ebp - 0x1e8]
push edx
call fcn.005e035d
add esp, 0xc
test eax, eax
jne 0x5ad7f7
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1e0]
mov dl, byte [ecx*8 + 0x65d6fc]
mov byte [eax], dl
mov eax, dword [ebp - 0x30]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp ecx, 0x6e
jne 0x5ad7f5
mov eax, dword [ebp + 0x24]
mov dword [eax + 0x4c], 1
jmp 0x5ad819
mov ecx, dword [ebp - 0x1e0]
mov edx, dword [ecx*8 + 0x65d6f8]
mov eax, dword [ebp - 0x1dc]
lea ecx, [eax + edx + 1]
mov dword [ebp - 0x1dc], ecx
jmp 0x5ad76e
mov edx, dword [ebp - 0x1e0]
cmp edx, dword [0x65d730]
jge 0x5ad82c
jmp 0x5aa501
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3c
jmp 0x5af3da
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x3f
jne 0x5aea22
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
mov dword [ebp - 0x26c], edx
mov eax, dword [ebp - 0x26c]
sub eax, 0x21
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0x5b
ja case.0x5ad88c.1
mov ecx, dword [ebp - 0x26c]
movzx edx, byte [ecx + 0x5af54c]
jmp dword [edx*4 + 0x5af510]
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
test edx, edx
je 0x5ad8bc
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, 0x29
je 0x5ad8bc
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5ad89c
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x5ad8d4
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x12
jmp 0x5af3da
jmp 0x5aa501
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x24], 0x5e
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5aea20
mov dword [ebp - 0x24], 0x60
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x3f
jne 0x5ad934
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 2]
cmp ecx, 0x3d
je 0x5ad92f
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 2]
cmp eax, 0x21
je 0x5ad92f
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 2]
cmp edx, 0x3c
jne 0x5ad934
jmp 0x5aea20
mov eax, dword [ebp - 0x30]
mov byte [eax + 3], 0x64
mov dword [ebp - 0xe8], 3
mov dword [ebp - 0xdc], 0xffffffff
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x52
jne 0x5ad983
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 2]
cmp ecx, 0x26
jne 0x5ad983
mov dword [ebp - 0xe0], 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 2
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x30]
mov byte [eax + 3], 0x65
jmp 0x5ad9fc
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x3c
jne 0x5ad9a4
mov dword [ebp - 0xe0], 0x3e
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5ad9fc
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x27
jne 0x5ad9c5
mov dword [ebp - 0xe0], 0x27
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5ad9fc
mov dword [ebp - 0xe0], 0
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x2d
je 0x5ad9e7
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x2b
jne 0x5ad9fc
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 0x10
jne 0x5ada29
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1c
jmp 0x5af3da
mov dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1fc], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 0x10
je 0x5adab1
cmp dword [ebp - 0xbc], 0
jl 0x5adaa6
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x65e178]
and eax, 4
je 0x5ada90
mov ecx, dword [ebp - 0xbc]
imul ecx, ecx, 0xa
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
lea ecx, [ecx + eax - 0x30]
mov dword [ebp - 0x270], ecx
jmp 0x5ada9a
mov dword [ebp - 0x270], 0xffffffff
mov edx, dword [ebp - 0x270]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5ada45
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x1f8], ecx
cmp dword [ebp - 0xe0], 0
jle 0x5adae2
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp eax, ecx
jne 0x5adaf6
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp ecx, 0x29
je 0x5adb0d
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1a
jmp 0x5af3da
cmp dword [ebp + 0x28], 0
je 0x5adb18
jmp 0x5aea20
cmp dword [ebp - 0xdc], 0
jle 0x5adbc5
cmp dword [ebp - 0xbc], 0
jg 0x5adb3c
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3a
jmp 0x5af3da
cmp dword [ebp - 0xdc], 0x2d
jne 0x5adb5c
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x30]
sub ecx, dword [ebp - 0xbc]
add ecx, 1
mov dword [ebp - 0x274], ecx
jmp 0x5adb6e
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0xbc]
add eax, dword [edx + 0x30]
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 0
jle 0x5adb91
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0xbc]
cmp eax, dword [edx + 0x34]
jle 0x5adb9f
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x5af3da
mov edx, dword [ebp - 0xbc]
sar edx, 8
mov eax, dword [ebp - 0x30]
mov byte [eax + 4], dl
mov ecx, dword [ebp - 0xbc]
and ecx, 0xff
mov edx, dword [ebp - 0x30]
mov byte [edx + 5], cl
jmp 0x5aea20
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x200], ecx
mov dword [ebp - 0x1f4], 0
jmp 0x5adbec
mov edx, dword [ebp - 0x1f4]
add edx, 1
mov dword [ebp - 0x1f4], edx
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x1f4]
cmp ecx, dword [eax + 0x28]
jge 0x5adc34
mov edx, dword [ebp - 0x1f8]
push edx
mov eax, dword [ebp - 0x200]
add eax, 2
push eax
mov ecx, dword [ebp - 0x1fc]
push ecx
call fcn.005e035d
add esp, 0xc
test eax, eax
jne 0x5adc20
jmp 0x5adc34
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0x200]
add eax, dword [edx + 0x2c]
mov dword [ebp - 0x200], eax
jmp 0x5adbdd
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x1f4]
cmp edx, dword [ecx + 0x28]
jge 0x5adc85
mov eax, dword [ebp - 0x200]
movzx ecx, byte [eax]
shl ecx, 8
mov edx, dword [ebp - 0x200]
movzx eax, byte [edx + 1]
or ecx, eax
mov dword [ebp - 0xbc], ecx
mov ecx, dword [ebp - 0xbc]
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx + 4], cl
mov eax, dword [ebp - 0xbc]
and eax, 0xff
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 5], al
jmp 0x5ade5b
mov edx, dword [ebp - 0x60]
and edx, 8
neg edx
sbb edx, edx
neg edx
push edx
mov eax, dword [ebp - 0x1f8]
push eax
mov ecx, dword [ebp - 0x1fc]
push ecx
mov edx, dword [ebp + 0x24]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.005b0060
add esp, 0x14
mov dword [ebp - 0x1f4], eax
cmp dword [ebp - 0x1f4], 0
jle 0x5adce4
mov ecx, dword [ebp - 0x1f4]
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx + 4], cl
mov eax, dword [ebp - 0x1f4]
and eax, 0xff
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 5], al
jmp 0x5ade5b
cmp dword [ebp - 0xe0], 0
je 0x5add00
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5af3da
mov eax, dword [ebp - 0x1fc]
movzx ecx, byte [eax]
cmp ecx, 0x52
jne 0x5addd1
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x1f4], 1
jmp 0x5add37
mov edx, dword [ebp - 0x1f4]
add edx, 1
mov dword [ebp - 0x1f4], edx
mov eax, dword [ebp - 0x1f4]
cmp eax, dword [ebp - 0x1f8]
jge 0x5add92
mov ecx, dword [ebp - 0x1fc]
add ecx, dword [ebp - 0x1f4]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x65e178]
and eax, 4
jne 0x5add6e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x5af3da
mov edx, dword [ebp - 0xbc]
imul edx, edx, 0xa
mov eax, dword [ebp - 0x1fc]
add eax, dword [ebp - 0x1f4]
movzx ecx, byte [eax]
lea edx, [edx + ecx - 0x30]
mov dword [ebp - 0xbc], edx
jmp 0x5add28
cmp dword [ebp - 0xbc], 0
jne 0x5adda5
mov dword [ebp - 0xbc], 0xffff
mov eax, dword [ebp - 0x30]
mov byte [eax + 3], 0x65
mov ecx, dword [ebp - 0xbc]
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx + 4], cl
mov eax, dword [ebp - 0xbc]
and eax, 0xff
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 5], al
jmp 0x5ade5b
cmp dword [ebp - 0x1f8], 6
jne 0x5ade07
push 6
push str.DEFINE
mov edx, dword [ebp - 0x1fc]
push edx
call fcn.005e035d
add esp, 0xc
test eax, eax
jne 0x5ade07
mov eax, dword [ebp - 0x30]
mov byte [eax + 3], 0x66
mov dword [ebp - 0xe8], 1
jmp 0x5ade5b
cmp dword [ebp - 0xbc], 0
jle 0x5ade41
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0xbc]
cmp edx, dword [ecx + 0x34]
jg 0x5ade41
mov eax, dword [ebp - 0xbc]
sar eax, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 4], al
mov edx, dword [ebp - 0xbc]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 5], dl
jmp 0x5ade5b
mov ecx, dword [ebp - 0xbc]
neg ecx
sbb ecx, ecx
and ecx, 0xffffffec
add ecx, 0x23
mov edx, dword [ebp + 0x14]
mov dword [edx], ecx
jmp 0x5af3da
jmp 0x5aea20
mov dword [ebp - 0x24], 0x58
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5aea20
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0x29
jne 0x5adea4
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x6d
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], 0
jmp 0x5aa501
mov dword [ebp - 0x24], 0x59
jmp 0x5aea20
mov eax, dword [ebp - 0x2c]
mov cl, byte [eax + 1]
mov byte [ebp - 0x278], cl
cmp byte [ebp - 0x278], 0x21
je 0x5adee2
cmp byte [ebp - 0x278], 0x3d
je 0x5aded0
jmp 0x5adef4
mov dword [ebp - 0x24], 0x5a
mov edx, dword [ebp - 0x2c]
add edx, 2
mov dword [ebp - 0x2c], edx
jmp 0x5adf26
mov dword [ebp - 0x24], 0x5b
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x2c], eax
jmp 0x5adf26
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 0x10
je 0x5adf0f
jmp case.0x5ad88c.6
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x18
jmp 0x5af3da
jmp 0x5aea20
mov dword [ebp - 0x24], 0x5d
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5aea20
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x78], 1
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x53
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x208], 0
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x65e178]
and eax, 4
je 0x5adf9f
mov ecx, dword [ebp - 0x208]
imul ecx, ecx, 0xa
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
lea ecx, [ecx + eax - 0x30]
mov dword [ebp - 0x208], ecx
jmp 0x5adf69
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0x29
je 0x5adfb8
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x27
jmp 0x5af3da
cmp dword [ebp - 0x208], 0xff
jle 0x5adfd2
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x26
jmp 0x5af3da
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x208]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [eax + 0x18]
add ecx, 1
sar ecx, 8
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [eax + 0x18]
add ecx, 1
and ecx, 0xff
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], cl
mov eax, dword [ebp - 0x30]
mov byte [eax + 2], 0
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 3], 0
mov edx, dword [ebp - 0x30]
add edx, 4
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], 0
jmp 0x5aa501
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x3d
je 0x5ae054
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, 0x3e
jne 0x5ae079
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
xor ecx, ecx
cmp eax, 0x3e
sete cl
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xe0], 0x29
jmp 0x5ae302
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0x3c
je case.0x5ad88c.6
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x29
jmp 0x5af3da
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
sub eax, 0x3c
neg eax
sbb eax, eax
and eax, 0xffffffe9
add eax, 0x3e
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0xc]
movzx ecx, byte [eax + ecx]
and ecx, 0x10
je 0x5ae0dd
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5ae0bd
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x1f8], eax
cmp dword [ebp + 0x28], 0
je 0x5ae164
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, dword [ebp - 0xe0]
je 0x5ae10e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2a
jmp 0x5af3da
mov ecx, dword [ebp + 0x24]
cmp dword [ecx + 0x28], 0x2710
jl 0x5ae128
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x31
jmp 0x5af3da
mov eax, dword [ebp - 0x1f8]
add eax, 3
mov ecx, dword [ebp + 0x24]
cmp eax, dword [ecx + 0x2c]
jle 0x5ae15f
mov edx, dword [ebp - 0x1f8]
add edx, 3
mov eax, dword [ebp + 0x24]
mov dword [eax + 0x2c], edx
cmp dword [ebp - 0x1f8], 0x20
jle 0x5ae15f
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x30
jmp 0x5af3da
jmp 0x5ae2d1
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1f4], 0
jmp 0x5ae18b
mov ecx, dword [ebp - 0x1f4]
add ecx, 1
mov dword [ebp - 0x1f4], ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0x1f4]
cmp eax, dword [edx + 0x28]
jge 0x5ae275
mov ecx, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x200]
add edi, 2
mov esi, dword [ebp - 0x1fc]
xor edx, edx
mov dword [ebp - 0x27c], edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5ae1c9
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x27c], eax
mov ecx, dword [ebp - 0x27c]
mov dword [ebp - 0x280], ecx
mov edx, dword [ebp - 0x280]
mov dword [ebp - 0x20c], edx
cmp dword [ebp - 0x20c], 0
jne 0x5ae223
mov eax, dword [ebp - 0x200]
add eax, dword [ebp - 0x1f8]
movzx ecx, byte [eax + 2]
test ecx, ecx
jne 0x5ae219
mov edx, dword [ebp - 0x60]
and edx, 0x80000
jne 0x5ae217
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2b
jmp 0x5af3da
jmp 0x5ae223
mov dword [ebp - 0x20c], 0xffffffff
cmp dword [ebp - 0x20c], 0
jge 0x5ae25e
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x28]
sub edx, dword [ebp - 0x1f4]
mov eax, dword [ebp + 0x24]
imul edx, dword [eax + 0x2c]
push edx
mov ecx, dword [ebp - 0x200]
push ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0x200]
add eax, dword [edx + 0x2c]
push eax
call fcn.005af620
add esp, 0xc
jmp 0x5ae275
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x200]
add edx, dword [ecx + 0x2c]
mov dword [ebp - 0x200], edx
jmp 0x5ae17c
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x30]
add ecx, 1
sar ecx, 8
mov edx, dword [ebp - 0x200]
mov byte [edx], cl
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x30]
add ecx, 1
and ecx, 0xff
mov edx, dword [ebp - 0x200]
mov byte [edx + 1], cl
mov eax, dword [ebp - 0x1f8]
push eax
mov ecx, dword [ebp - 0x1fc]
push ecx
mov edx, dword [ebp - 0x200]
add edx, 2
push edx
call fcn.005e3990
add esp, 0xc
mov eax, dword [ebp - 0x200]
add eax, dword [ebp - 0x1f8]
mov byte [eax + 2], 0
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x28]
add eax, 1
mov ecx, dword [ebp + 0x24]
mov dword [ecx + 0x28], eax
jmp 0x5aea35
mov dword [ebp - 0xe0], 0x29
mov dword [ebp - 0xc8], 1
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1fc], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 0x10
je 0x5ae334
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5ae314
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x1f8], ecx
cmp dword [ebp + 0x28], 0
je 0x5ae3a2
cmp dword [ebp - 0x1f8], 0
jne 0x5ae360
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3e
jmp 0x5af3da
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, dword [ebp - 0xe0]
je 0x5ae37c
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2a
jmp 0x5af3da
cmp dword [ebp - 0x1f8], 0x20
jle 0x5ae393
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x5af3da
mov dword [ebp - 0xbc], 0
jmp 0x5ae49b
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x200], edx
mov dword [ebp - 0x1f4], 0
jmp 0x5ae3c9
mov eax, dword [ebp - 0x1f4]
add eax, 1
mov dword [ebp - 0x1f4], eax
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x1f4]
cmp edx, dword [ecx + 0x28]
jge 0x5ae425
mov eax, dword [ebp - 0x1f8]
push eax
mov ecx, dword [ebp - 0x200]
add ecx, 2
push ecx
mov edx, dword [ebp - 0x1fc]
push edx
call fcn.005e035d
add esp, 0xc
test eax, eax
jne 0x5ae411
mov eax, dword [ebp - 0x200]
add eax, dword [ebp - 0x1f8]
movzx ecx, byte [eax + 2]
test ecx, ecx
jne 0x5ae411
jmp 0x5ae425
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0x200]
add eax, dword [edx + 0x2c]
mov dword [ebp - 0x200], eax
jmp 0x5ae3ba
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x1f4]
cmp edx, dword [ecx + 0x28]
jge 0x5ae453
mov eax, dword [ebp - 0x200]
movzx ecx, byte [eax]
shl ecx, 8
mov edx, dword [ebp - 0x200]
movzx eax, byte [edx + 1]
or ecx, eax
mov dword [ebp - 0xbc], ecx
jmp 0x5ae49b
mov ecx, dword [ebp - 0x60]
and ecx, 8
neg ecx
sbb ecx, ecx
neg ecx
push ecx
mov edx, dword [ebp - 0x1f8]
push edx
mov eax, dword [ebp - 0x1fc]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
call fcn.005b0060
add esp, 0x14
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jg 0x5ae49b
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x5af3da
cmp dword [ebp - 0xc8], 0
je 0x5ae4ab
jmp 0x5ae609
jmp 0x5af061
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xe0], 0x29
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0x2b
jne 0x5ae503
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x65e178]
and ecx, 4
jne 0x5ae501
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3f
jmp 0x5af3da
jmp 0x5ae52d
cmp dword [ebp - 0xdc], 0x2d
jne 0x5ae52d
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
movzx edx, byte [ecx + 0x65e178]
and edx, 4
jne 0x5ae524
jmp case.0x5ad88c.1
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x65e178]
and eax, 4
je 0x5ae56d
mov ecx, dword [ebp - 0xbc]
imul ecx, ecx, 0xa
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
lea ecx, [ecx + eax - 0x30]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5ae537
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, dword [ebp - 0xe0]
je 0x5ae589
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1d
jmp 0x5af3da
cmp dword [ebp - 0xdc], 0x2d
jne 0x5ae5d7
cmp dword [ebp - 0xbc], 0
jne 0x5ae5a9
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x5af3da
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x30]
sub edx, dword [ebp - 0xbc]
add edx, 1
mov dword [ebp - 0xbc], edx
cmp dword [ebp - 0xbc], 0
jg 0x5ae5d5
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x5af3da
jmp 0x5ae609
cmp dword [ebp - 0xdc], 0x2b
jne 0x5ae609
cmp dword [ebp - 0xbc], 0
jne 0x5ae5f7
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3a
jmp 0x5af3da
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0xbc]
add eax, dword [edx + 0x30]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x210], eax
cmp dword [ebp + 0x28], 0
jne 0x5ae73b
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0
cmp dword [ebp - 0xbc], 0
je 0x5ae657
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x14]
push edx
call fcn.005a9b00
add esp, 0xc
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x210], 0
jne 0x5ae6f0
mov eax, dword [ebp - 0x60]
and eax, 8
neg eax
sbb eax, eax
neg eax
push eax
mov ecx, dword [ebp - 0xbc]
push ecx
push 0
mov edx, dword [ebp + 0x24]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.005b0060
add esp, 0x14
test eax, eax
jge 0x5ae69c
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x5af3da
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x14]
add eax, dword [ebp - 0xbc]
mov dword [ebp - 0x210], eax
mov ecx, dword [ebp - 0x30]
add ecx, 4
mov edx, dword [ebp + 0x24]
sub ecx, dword [edx + 0x14]
sar ecx, 8
mov eax, dword [ebp + 0x24]
mov edx, dword [eax + 0x20]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 4
mov ecx, dword [ebp + 0x24]
sub eax, dword [ecx + 0x14]
and eax, 0xff
mov edx, dword [ebp + 0x24]
mov ecx, dword [edx + 0x20]
mov byte [ecx + 1], al
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x20]
add eax, 2
mov ecx, dword [ebp + 0x24]
mov dword [ecx + 0x20], eax
jmp 0x5ae73b
mov edx, dword [ebp - 0x210]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 2]
or eax, edx
jne 0x5ae73b
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x210]
push eax
call fcn.005b0870
add esp, 0x10
test eax, eax
je 0x5ae73b
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x28
jmp 0x5af3da
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x5d
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 2], 6
mov edx, dword [ebp - 0x30]
add edx, 3
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x52
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x210]
sub edx, dword [ecx + 0x14]
sar edx, 8
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], dl
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp - 0x210]
sub edx, dword [ecx + 0x14]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 2], dl
mov ecx, dword [ebp - 0x30]
add ecx, 3
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x55
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 2], 6
mov edx, dword [ebp - 0x30]
add edx, 3
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x1c], 9
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5ae7c5
mov dword [ebp - 0x18], 0xffffffff
jmp 0x5aa501
mov dword [ebp - 0x1ec], 0
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x1f0], eax
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x204], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0x29
je 0x5ae934
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x3a
je 0x5ae934
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
mov dword [ebp - 0x284], ecx
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x288], eax
mov ecx, dword [ebp - 0x288]
sub ecx, 0x2d
mov dword [ebp - 0x288], ecx
cmp dword [ebp - 0x288], 0x4b
ja case.0x5ae854.1
mov edx, dword [ebp - 0x288]
movzx eax, byte [edx + 0x5af5cc]
jmp dword [eax*4 + 0x5af5a8]
lea ecx, [ebp - 0x1ec]
mov dword [ebp - 0x204], ecx
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 0x80000
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x44]
or eax, 0x10
mov ecx, dword [ebp + 0x24]
mov dword [ecx + 0x44], eax
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 1
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 2
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 4
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 8
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 0x200
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
jmp 0x5ae92f
mov edx, dword [ebp - 0x204]
mov eax, dword [edx]
or eax, 0x40
mov ecx, dword [ebp - 0x204]
mov dword [ecx], eax
jmp 0x5ae92f
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xc
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x5af3da
jmp 0x5ae7ec
mov ecx, dword [ebp - 0x60]
or ecx, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0x1ec]
not edx
and ecx, edx
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, 0x29
jne 0x5aea10
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x14]
add eax, 3
cmp dword [ebp - 0x30], eax
jne 0x5ae986
cmp dword [ebp + 0x28], 0
je 0x5ae978
mov ecx, dword [ebp + 0x28]
cmp dword [ecx], 6
jne 0x5ae986
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x40], eax
jmp 0x5ae9f3
mov ecx, dword [ebp - 0x60]
and ecx, 7
mov edx, dword [ebp - 0xc4]
and edx, 7
cmp ecx, edx
je 0x5ae9bf
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x19
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0xc4]
and edx, 7
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0xc4]
and edx, 0x200
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
xor eax, 1
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0xc4]
and ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 0x100
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov dword [ebp - 4], 0
jmp 0x5aa501
mov dword [ebp - 0x24], 0x5e
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5aea6f
mov eax, dword [ebp - 0x60]
and eax, 0x1000
je 0x5aea35
mov dword [ebp - 0x24], 0x5e
jmp 0x5aea6f
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ebp + 0x24]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x30]
sar edx, 8
mov eax, dword [ebp - 0x30]
mov byte [eax + 3], dl
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x30]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 4], dl
mov dword [ebp - 0xe8], 2
xor ecx, ecx
cmp dword [ebp - 0x24], 0x5d
setl cl
sub ecx, 1
and ecx, dword [ebp - 0x30]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x30]
mov al, byte [ebp - 0x24]
mov byte [edx], al
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x48]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x24], 0x5a
je 0x5aeabd
cmp dword [ebp - 0x24], 0x5b
je 0x5aeabd
mov dword [ebp - 0x28c], 0
jmp 0x5aeac7
mov dword [ebp - 0x28c], 1
mov ecx, dword [ebp + 0x28]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x1c]
and ecx, edx
push ecx
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0xc0]
push edx
lea eax, [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xe8]
push ecx
mov edx, dword [ebp - 0xec]
push edx
mov eax, dword [ebp - 0x28c]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0xa4]
push eax
mov ecx, dword [ebp - 0x60]
and ecx, 7
push ecx
mov edx, dword [ebp - 0xc4]
push edx
call fcn.005a9c90
add esp, 0x34
test eax, eax
jne 0x5aeb2d
jmp 0x5af3da
cmp dword [ebp - 0x24], 0x60
jne 0x5aebf8
cmp dword [ebp + 0x28], 0
jne 0x5aebf8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], 0
mov ecx, dword [ebp - 0x214]
add ecx, 1
mov dword [ebp - 0x214], ecx
mov edx, dword [ebp - 0x218]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x218]
movzx edx, byte [ecx + 2]
or eax, edx
add eax, dword [ebp - 0x218]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x218]
movzx ecx, byte [eax]
cmp ecx, 0x55
jne 0x5aeb54
mov edx, dword [ebp - 0x30]
movzx eax, byte [edx + 3]
cmp eax, 0x66
jne 0x5aebc2
cmp dword [ebp - 0x214], 1
jle 0x5aebb9
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x36
jmp 0x5af3da
mov dword [ebp - 0x24], 0x66
jmp 0x5aebf8
cmp dword [ebp - 0x214], 2
jle 0x5aebd9
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1b
jmp 0x5af3da
cmp dword [ebp - 0x214], 1
jne 0x5aebf8
mov dword [ebp - 0xc0], 0xffffffff
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
cmp edx, 0x29
je 0x5aec11
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xe
jmp 0x5af3da
cmp dword [ebp + 0x28], 0
je 0x5aec9d
mov ecx, dword [ebp + 0x28]
mov edx, 0x7fffffeb
sub edx, dword [ecx]
mov eax, dword [ebp - 0x1c]
sub eax, 6
cmp edx, eax
jge 0x5aec3d
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x5af3da
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax - 6]
mov eax, dword [ebp + 0x28]
mov dword [eax], edx
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x5e
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 3
mov edx, dword [ebp - 0x30]
add edx, 2
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x55
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov byte [edx], 0
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 3
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
jmp 0x5af3d5
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x24], 0x66
jne 0x5aecb1
jmp 0x5af3d5
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 8], 0
cmp dword [ebp - 0x24], 0x5d
jl 0x5aed39
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5aed01
cmp dword [ebp - 0xd4], 0
jl 0x5aecee
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], 1
jmp 0x5aecf5
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x94], 0xffffffff
jmp 0x5aed25
cmp dword [ebp - 0xd4], 0
jl 0x5aed25
cmp dword [ebp - 0xc0], 0
jge 0x5aed25
mov eax, dword [ebp - 0xd4]
or eax, dword [ebp - 0x84]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
jl 0x5aed37
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x7c], ecx
jmp 0x5aed51
cmp dword [ebp - 0x24], 0x58
jne 0x5aed51
cmp dword [ebp - 0xc0], 0
jl 0x5aed51
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x7c], edx
jmp 0x5af3d5
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x90], eax
push 0
mov ecx, dword [ebp - 0x60]
push ecx
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0x30]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
lea edx, [ebp - 0x2c]
push edx
call fcn.005af6d0
add esp, 0x14
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x5aed8f
jmp 0x5af3da
cmp dword [ebp - 0x98], 0
jge 0x5af204
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0x1a
jne 0x5aedd8
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x5c
jne 0x5aedcc
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 2]
cmp edx, 0x45
jne 0x5aedcc
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x2c], eax
jmp 0x5aedd3
mov dword [ebp - 0x68], 1
jmp 0x5aa501
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0x19
jne 0x5aedea
jmp 0x5aa501
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5aee11
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 5
jle 0x5aee11
mov eax, dword [ebp - 0x98]
neg eax
cmp eax, 0x17
jge 0x5aee11
mov dword [ebp - 0x18], 0xffffffff
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x98]
neg eax
cmp eax, 0x1b
jne 0x5aefba
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
sub edx, 0x3c
neg edx
sbb edx, edx
and edx, 0xffffffe9
add edx, 0x3e
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x2b
je 0x5aef5b
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x2d
je 0x5aef5b
mov dword [ebp - 0x220], 1
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x21c], ecx
jmp 0x5aeeba
mov edx, dword [ebp - 0x21c]
add edx, 1
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x21c]
movzx ecx, byte [eax]
test ecx, ecx
je 0x5aef16
mov edx, dword [ebp - 0x21c]
movzx eax, byte [edx]
cmp eax, dword [ebp - 0xe0]
je 0x5aef16
mov ecx, dword [ebp - 0x21c]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 4
jne 0x5aeefa
mov dword [ebp - 0x220], 0
mov eax, dword [ebp - 0x21c]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 0xc]
movzx ecx, byte [eax + ecx]
and ecx, 0x10
jne 0x5aef14
jmp 0x5aef16
jmp 0x5aeeab
mov edx, dword [ebp - 0x21c]
movzx eax, byte [edx]
cmp eax, dword [ebp - 0xe0]
je 0x5aef35
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x5af3d5
cmp dword [ebp - 0x220], 0
je 0x5aef4c
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5ae4c3
mov dword [ebp - 0xc8], 1
jmp 0x5ae302
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x21c]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x65e178]
and eax, 4
je 0x5aef8d
mov ecx, dword [ebp - 0x21c]
add ecx, 1
mov dword [ebp - 0x21c], ecx
jmp 0x5aef67
mov edx, dword [ebp - 0x21c]
movzx eax, byte [edx]
cmp eax, dword [ebp - 0xe0]
je 0x5aefac
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x5af3d5
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x5ae4c3
mov eax, dword [ebp - 0x98]
neg eax
cmp eax, 0x1c
jne 0x5af03f
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0x3c
je 0x5aefeb
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp ecx, 0x27
je 0x5aefeb
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0x7b
jne 0x5af03f
mov dword [ebp - 0xc8], 0
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0x3c
jne 0x5af015
mov dword [ebp - 0x290], 0x3e
jmp 0x5af02e
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
sub edx, 0x27
neg edx
sbb edx, edx
and edx, 0x56
add edx, 0x27
mov dword [ebp - 0x290], edx
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0xe0], eax
jmp 0x5ae302
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0x1d
jl 0x5af105
mov edx, dword [ebp - 0x98]
neg edx
sub edx, 0x1d
mov dword [ebp - 0xbc], edx
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5af06e
mov dword [ebp - 0x18], 0xffffffff
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x51
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0xbc]
sar eax, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx], al
mov edx, dword [ebp - 0xbc]
and edx, 0xff
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], dl
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0xbc], 0x20
jge 0x5af0ca
mov edx, 1
mov ecx, dword [ebp - 0xbc]
shl edx, cl
mov dword [ebp - 0x294], edx
jmp 0x5af0d4
mov dword [ebp - 0x294], 1
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x3c]
or ecx, dword [ebp - 0x294]
mov edx, dword [ebp + 0x24]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0xbc]
cmp ecx, dword [eax + 0x38]
jle 0x5af100
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 0xbc]
mov dword [edx + 0x38], eax
jmp 0x5af1ff
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 0xf
je 0x5af123
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0x10
jne 0x5af1b1
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x228]
push ecx
lea edx, [ebp - 0x224]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.005afcb0
add esp, 0x10
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jge 0x5af155
jmp 0x5af3da
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x98]
neg edx
xor eax, eax
cmp edx, 0x10
sete al
xor ecx, ecx
cmp eax, dword [ebp - 0x224]
setne cl
add ecx, 0xf
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov dl, byte [ebp - 0x22c]
mov byte [ecx], dl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov dl, byte [ebp - 0x228]
mov byte [ecx], dl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x5af1ff
mov ecx, dword [ebp - 0x98]
neg ecx
cmp ecx, 5
jle 0x5af1d6
mov edx, dword [ebp - 0x98]
neg edx
cmp edx, 0x17
jge 0x5af1d6
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x298], eax
jmp 0x5af1e0
mov dword [ebp - 0x298], 0
mov ecx, dword [ebp - 0x298]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x98]
neg edx
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
jmp 0x5aa501
cmp dword [ebp - 0x9c], 0
je 0x5af234
cmp dword [ebp - 0x98], 0x7f
jle 0x5af234
lea edx, [ebp - 0xb4]
push edx
mov eax, dword [ebp - 0x98]
push eax
call fcn.005d0b70
add esp, 8
mov dword [ebp - 0xb8], eax
jmp 0x5af24a
mov cl, byte [ebp - 0x98]
mov byte [ebp - 0xb4], cl
mov dword [ebp - 0xb8], 1
jmp 0x5af2b8
mov dword [ebp - 0xb8], 1
mov dl, byte [ebp - 0x98]
mov byte [ebp - 0xb4], dl
cmp dword [ebp - 0x9c], 0
je 0x5af2b8
cmp dword [ebp - 0x98], 0xc0
jl 0x5af2b8
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x5af2b8
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x2c]
mov dl, byte [ecx]
mov byte [ebp + eax - 0xb4], dl
mov eax, dword [ebp - 0xb8]
add eax, 1
mov dword [ebp - 0xb8], eax
jmp 0x5af277
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x60]
and edx, 1
neg edx
sbb edx, edx
neg edx
add edx, 0x1c
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x98], 0
jmp 0x5af2f6
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0xb8]
jge 0x5af321
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x98]
mov al, byte [ebp + edx - 0xb4]
mov byte [ecx], al
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
jmp 0x5af2e7
movzx edx, byte [ebp - 0xb4]
cmp edx, 0xd
je 0x5af339
movzx eax, byte [ebp - 0xb4]
cmp eax, 0xa
jne 0x5af348
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x44]
or edx, 0x20
mov eax, dword [ebp + 0x24]
mov dword [eax + 0x44], edx
cmp dword [ebp - 0x18], 0xfffffffe
jne 0x5af3a4
mov dword [ebp - 0x94], 0xffffffff
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xb8], 1
je 0x5af36d
cmp dword [ebp - 0x74], 0
jne 0x5af395
movzx edx, byte [ebp - 0xb4]
or edx, dword [ebp - 0x74]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0xb8], 1
je 0x5af393
mov eax, dword [ebp - 0x30]
movzx ecx, byte [eax - 1]
mov edx, dword [ebp + 0x24]
or ecx, dword [edx + 0x48]
mov dword [ebp - 0x7c], ecx
jmp 0x5af3a2
mov dword [ebp - 0x7c], 0xffffffff
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x18], eax
jmp 0x5af3d5
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xb8], 1
je 0x5af3c2
cmp dword [ebp - 0x74], 0
jne 0x5af3d5
mov eax, dword [ebp - 0x30]
movzx ecx, byte [eax - 1]
or ecx, dword [ebp - 0x74]
mov edx, dword [ebp + 0x24]
or ecx, dword [edx + 0x48]
mov dword [ebp - 0x7c], ecx
jmp 0x5aa501
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret