Function at 0x585ed0
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x144
mov eax, dword [0x8a3940]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x15c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0xe4], ecx
mov ecx, dword [ecx]
mov eax, ecx
shr eax, 0xb
and eax, 1
mov dword [esp + 0xfc], edx
mov edx, dword [edx]
mov dword [esp + 0x4c], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0x48], ecx
mov ebx, dword [esp + 0x160]
mov dword [esp + 0xcc], eax
xor eax, 1
mov ebp, dword [esp + 0x180]
mov dword [esp + 0xd0], eax
mov eax, ecx
xor esi, esi
mov dword [esp + 0xdc], ebx
mov ebx, dword [ebx]
and eax, 1
mov edi, dword [esp + 0x164]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0xb4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0xc0], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x5c], 0xfffffffe
mov dword [esp + 0x8c], 0xfffffffe
mov dword [esp + 0x6c], 0xfffffffe
mov dword [esp + 0x40], 0xfffffffe
mov dword [esp + 0xa8], eax
mov dword [esp + 0xbc], edx
movsd xmm2, qword [0x768350]
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x58606b
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x58606b
mov ebx, eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x3c]
add ecx, 0xffffff9c
add eax, ecx
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x58612f
cmp edx, eax
ja 0x589fc1
mov eax, dword [esp + 0xbc]
cmp edx, eax
cmovb edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x589fac
sub edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
add edx, eax
mov dword [ecx], edx
mov edx, dword [esp + 0x38]
test edx, edx
je 0x58610e
cmp edx, dword [esp + 0xc0]
jbe 0x586122
mov ebx, dword [esp + 0xc0]
sub eax, edx
push eax
push edx
push ebx
call fcn.0058ca30
mov edx, dword [esp + 0x20]
mov eax, ebx
sub eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0x58]
add edx, eax
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0xbc], edx
jmp 0x586138
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x14], edx
mov dword [esp + 0xbc], edx
jmp 0x586138
mov edx, dword [esp + 0x14]
mov dword [esp + 0xbc], edx
jmp 0x586138
cmp dword [ebp + 0x20], eax
ja 0x589fc1
mov edx, dword [esp + 0x1c]
test esi, esi
je 0x586238
test edx, edx
je 0x586238
cmp edx, 0x5c
jne 0x586168
cmp byte [ebx + 1], 0x45
jne 0x586168
mov edx, dword [esp + 0x14]
xor esi, esi
inc ebx
mov dword [esp + 0x20], esi
inc ebx
jmp 0x586037
mov esi, dword [esp + 0x98]
test esi, esi
je 0x5861a3
test ecx, ecx
jne 0x586198
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [ebp + 0x18]
mov eax, ebx
mov byte [esi + 5], bl
sar eax, 8
mov byte [esi + 4], al
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x98], 0
test dword [esp + 0x48], 0x4000
je case.0x586410.1
mov eax, dword [esp + 0x14]
lea ecx, [eax + 1]
mov dword [esp + 0x98], eax
mov byte [ecx], 0xff
mov byte [eax], 0x76
mov eax, ebx
sub eax, dword [ebp + 0x18]
sar eax, 8
mov byte [ecx + 1], al
lea eax, [ecx + 5]
sub bl, byte [ebp + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], 0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x4c], 0
mov esi, 1
mov byte [esp + 0x100], dl
je 0x5873b4
cmp edx, 0xc0
jb 0x5873b4
mov al, byte [ebx + 1]
inc ebx
and al, 0xc0
cmp al, 0x80
jne 0x5873b4
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
inc ebx
mov byte [esp + esi + 0x100], al
inc esi
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x586214
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
jmp 0x5873c7
mov edi, dword [esp + 0x48]
and edi, 8
je 0x586312
mov eax, dword [ebp + 0xc]
test byte [eax + edx], 1
je 0x586262
nop
inc ebx
mov dword [esp + 0x10], ebx
movzx edx, byte [ebx]
mov dword [esp + 0x1c], edx
test byte [eax + edx], 1
jne 0x586250
cmp edx, 0x23
jne 0x586306
inc ebx
mov dword [esp + 0x10], ebx
mov dl, byte [ebx]
test dl, dl
je 0x5862aa
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x1c]
test ecx, ecx
je 0x5862af
cmp ebx, eax
jae 0x5862d3
push dword [esp + 0x4c]
lea esi, [ebp + 0x80]
push esi
push eax
push ecx
push ebx
call fcn.0059ac50
mov ebx, dword [esp + 0x24]
add esp, 0x14
test eax, eax
je 0x5862d3
mov ecx, dword [esi]
add ebx, ecx
mov dword [esp + 0x10], ebx
movzx edx, byte [ebx]
jmp 0x586245
mov ecx, dword [ebp + 0x80]
sub eax, ecx
cmp ebx, eax
ja 0x5862d3
cmp dl, byte [ebp + 0x84]
jne 0x5862d3
cmp ecx, 1
je 0x5862a4
mov al, byte [ebx + 1]
cmp al, byte [ebp + 0x85]
je 0x5862a4
inc ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x10], ebx
je 0x5862f4
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x5862f4
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x5862e7
mov dl, byte [ebx]
test dl, dl
jne 0x586276
movzx edx, dl
jmp 0x586245
movsd xmm2, qword [0x768350]
mov dword [esp + 0x1c], edx
cmp edx, 0x2a
je 0x5863ab
cmp edx, 0x2b
je 0x5863ab
cmp edx, 0x3f
je 0x5863ab
cmp edx, 0x7b
jne 0x586346
lea eax, [ebx + 1]
push eax
call fcn.0058ba10
mov edx, dword [esp + 0x20]
add esp, 4
test eax, eax
jne 0x5863ab
mov ecx, dword [esp + 0x98]
xor esi, esi
mov eax, dword [esp + 0x7c]
test ecx, ecx
je 0x5863b4
test eax, eax
jne 0x5863b4
mov eax, dword [esp + 0xb4]
dec dword [esp + 0xb4]
test eax, eax
jg 0x5863b0
cmp dword [esp + 0x58], esi
jne 0x5863a2
mov eax, dword [esp + 0x98]
movzx ecx, byte [ecx + 2]
shl ecx, 8
movzx eax, byte [eax + 3]
or ecx, eax
sub ebx, ecx
mov ecx, dword [esp + 0x98]
sub ebx, dword [ebp + 0x18]
mov eax, ebx
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x98], esi
jmp 0x5863b0
mov esi, 1
mov eax, dword [esp + 0x7c]
test dword [esp + 0x48], 0x4000
je 0x5863fc
test esi, esi
jne 0x5863fc
test eax, eax
jne 0x5863fc
mov eax, dword [esp + 0x14]
lea ecx, [eax + 1]
mov dword [esp + 0x98], eax
mov byte [ecx], 0xff
mov byte [eax], 0x76
mov eax, ebx
sub eax, dword [ebp + 0x18]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [ebp + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], si
add ecx, 5
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
jmp 0x586400
mov ecx, dword [esp + 0x14]
cmp edx, 0x7c
ja case.0x586410.1
movzx eax, byte [edx + 0x58a020]
jmp dword [eax*4 + 0x589fec]
test byte [esp + 0x48], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x38], 0
je 0x586457
mov ecx, dword [esp + 0x40]
mov eax, 0xffffffff
cmp ecx, 0xfffffffe
mov byte [edx], 0x1c
mov ebx, dword [esp + 0x10]
cmove ecx, eax
inc edx
mov dword [esp + 0x40], ecx
inc ebx
mov dword [esp + 0x14], edx
jmp 0x586037
mov byte [edx], 0x1b
inc edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc ebx
jmp 0x586037
test byte [esp + 0x48], 2
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
setne al
mov edi, dword [esp + 0x18]
add al, 0x19
mov dword [esp + 0x38], 0
mov byte [edx], al
inc edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc ebx
jmp 0x586037
mov ecx, dword [esp + 0x40]
mov eax, 0xffffffff
mov edx, dword [esp + 0x14]
cmp ecx, 0xfffffffe
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
cmove ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x48]
shr eax, 2
and al, 1
mov dword [esp + 0x38], edx
or al, 0xc
mov dword [esp + 0x40], ecx
mov byte [edx], al
inc edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x8c], ecx
inc ebx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], edx
jmp 0x586037
test dword [ebp + 0x60], 0x2000000
je case.0x586410.1
mov eax, dword [esp + 0x18]
mov dword [eax], 0x40
jmp 0x589fc7
push 6
lea eax, [ebx + 1]
push 0x78a8b0
push eax
call fcn.005a47e0
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x586552
mov edx, dword [esp + 0x14]
mov ebx, str._b__w_
mov edi, dword [esp + 0x18]
add eax, 7
mov esi, dword [esp + 0x20]
dec ebx
mov dword [esp + 0x7c], eax
inc ebx
jmp 0x586037
push 6
inc eax
push str._:_:__
push eax
call fcn.005a47e0
add esp, 0xc
test eax, eax
jne 0x58658a
mov eax, dword [esp + 0x10]
mov ebx, str._b___w_
mov edx, dword [esp + 0x14]
add eax, 7
mov edi, dword [esp + 0x18]
dec ebx
mov esi, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x7c], eax
jmp 0x586037
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], esi
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x5865a5
cmp al, 0x2e
je 0x5865a5
cmp al, 0x3d
jne 0x5865c2
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.00585350
mov ebx, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x589d4a
xor ecx, ecx
mov dword [esp + 0x34], ecx
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x2c], eax
cmp eax, 0x5c
jne 0x586607
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x5865e6
mov ebx, eax
jmp 0x5865c8
push 3
push 0x78a8c0
push eax
call fcn.005a47e0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x58661d
mov ecx, dword [esp + 0x34]
add ebx, 3
jmp 0x5865c8
test ecx, ecx
jne 0x5866be
cmp eax, 0x5e
jne 0x5866be
lea ecx, [eax - 0x5d]
jmp 0x5865c4
mov eax, dword [esp + 0x2c]
xor ecx, ecx
lea edx, [esi + 4]
xor edi, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], ecx
xorps xmm0, xmm0
mov dword [esp + 0x28], edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x44], edx
movups xmmword [esp + 0x108], xmm0
movups xmmword [esp + 0x118], xmm0
test eax, eax
je 0x5871b0
nop dword [eax + eax]
cmp dword [esp + 0x4c], 0
mov esi, ecx
mov ebp, edi
mov dword [esp + 0x5c], esi
mov edi, ecx
je 0x586811
cmp eax, 0xc0
jb 0x586811
movzx eax, byte [ebx]
mov dword [esp + 0x2c], eax
cmp eax, 0xc0
jb 0x586811
test al, 0x20
jne 0x586728
and eax, 0x1f
inc ebx
shl eax, 6
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
movzx eax, byte [ebx]
and eax, 0x3f
mov dword [esp + 0x10], ebx
or ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x586815
cmp eax, 0x5d
jne 0x586621
test dword [ebp + 0x60], 0x2000000
je 0x586621
mov edx, dword [esp + 0x14]
test ecx, ecx
mov esi, dword [esp + 0x20]
mov ecx, 0xd
mov edi, dword [esp + 0x18]
mov eax, 0x9d
cmovne eax, ecx
mov ecx, dword [esp + 0x40]
mov byte [edx], al
inc edx
mov ebx, dword [esp + 0x10]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x14], edx
cmove ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x40], ecx
inc ebx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x8c], ecx
jmp 0x586037
movzx ecx, byte [ebx + 1]
mov edx, dword [esp + 0x70]
and ecx, 0x3f
test al, 0x10
jne 0x58675b
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 2
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebx
jmp 0x586815
test al, 8
jne 0x58678f
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 3
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebx
jmp 0x586815
test al, 4
jne 0x5867cc
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 4
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebx
jmp 0x586815
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 5
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebx
jmp 0x586815
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], 0
je 0x58683c
mov eax, dword [esp + 0x44]
cmp eax, edx
jbe 0x58683c
mov esi, dword [esp + 0x58]
sub eax, edx
mov dword [esp + 0x50], 1
mov dword [esp + 0x44], edx
add dword [esi], eax
mov esi, dword [esp + 0x5c]
cmp dword [esp + 0x20], 0
je 0x58686a
cmp ecx, 0x5c
jne 0x586b20
cmp byte [ebx + 1], 0x45
jne 0x586b20
mov ecx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x20], esi
jmp 0x58717e
cmp ecx, 0x5b
jne 0x586acf
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x586886
cmp al, 0x2e
je 0x586886
cmp al, 0x3d
jne 0x586b20
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.00585350
mov ebx, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x586b20
cmp byte [ebx + 1], 0x3a
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
jne 0x589d07
lea ebp, [ebx + 2]
mov dword [esp + 0x10], ebp
mov al, byte [ebp]
mov byte [esp + 0x6b], al
cmp al, 0x5e
jne 0x5868d7
inc ebp
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], ebp
mov ebx, dword [esp + 0x94]
mov edi, str.alpha
sub ebx, ebp
xor esi, esi
nop word [eax + eax]
movzx eax, byte [esi + 0x7895fc]
cmp ebx, eax
jne 0x58690a
push ebx
push edi
push ebp
call fcn.005a47e0
add esp, 0xc
test eax, eax
je 0x586931
movzx eax, byte [esi + 0x7895fc]
inc edi
inc esi
add edi, eax
cmp byte [esi + 0x7895fc], 0
jne 0x5868f0
mov eax, dword [esp + 0x18]
mov dword [eax], 0x1e
mov ebx, dword [esp + 0x10]
jmp 0x589fc7
test esi, esi
js 0x58691e
mov eax, dword [esp + 0x48]
test al, 1
je 0x586945
xor ecx, ecx
cmp esi, 2
cmovle esi, ecx
test eax, 0x20000000
je 0x5869e2
mov cl, byte [esp + 0x6b]
xor eax, eax
cmp cl, 0x5e
mov edx, 0xe
cmove eax, edx
add eax, esi
mov ebx, dword [eax*4 + 0x8a38b0]
test ebx, ebx
je 0x586988
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x7c], ecx
dec ebx
mov ecx, dword [esp + 0x30]
jmp 0x58717a
mov eax, esi
sub eax, 8
je 0x5869a1
sub eax, 1
je 0x58699d
sub eax, 1
jne 0x5869e2
mov dl, 0xd
jmp 0x5869a3
mov dl, 0xc
jmp 0x5869a3
mov dl, 0xb
mov eax, dword [esp + 0x44]
cmp cl, 0x5e
mov edi, dword [esp + 0x28]
sete cl
add cl, 3
mov byte [eax], cl
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x44], eax
mov byte [eax], dl
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
mov byte [eax], 0
mov ebx, dword [esp + 0x94]
inc dword [esp + 0x44]
inc ebx
jmp 0x58717a
mov edx, dword [esp + 0x3c]
lea ecx, [esi + esi*2]
mov eax, dword [ecx*4 + 0x789670]
mov esi, dword [ecx*4 + 0x789678]
movups xmm0, xmmword [eax + edx]
movups xmmword [esp + 0x130], xmm0
movups xmm0, xmmword [eax + edx + 0x10]
mov eax, dword [ecx*4 + 0x789674]
movups xmmword [esp + 0x140], xmm0
test eax, eax
js 0x586a54
add edx, eax
xor ecx, ecx
test esi, esi
js 0x586a40
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x130], al
inc ecx
cmp ecx, 0x20
jb 0x586a23
jmp 0x586a5a
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x130], al
inc ecx
cmp ecx, 0x20
jb 0x586a40
jmp 0x586a58
test esi, esi
jns 0x586a5a
neg esi
cmp esi, 1
jne 0x586a69
and byte [esp + 0x131], 0xc3
jmp 0x586a76
cmp esi, 2
jne 0x586a76
and byte [esp + 0x13b], 0x7f
xor ecx, ecx
cmp byte [esp + 0x6b], 0x5e
jne 0x586aa0
nop
mov al, byte [esp + ecx + 0x130]
not al
or byte [esp + ecx + 0x108], al
inc ecx
cmp ecx, 0x20
jb 0x586a80
jmp 0x586ab4
mov al, byte [esp + ecx + 0x130]
or byte [esp + ecx + 0x108], al
inc ecx
cmp ecx, 0x20
jb 0x586aa0
mov ebx, dword [esp + 0x94]
mov edi, 2
inc ebx
mov dword [esp + 0x28], edi
mov ecx, 1
jmp 0x587176
cmp ecx, 0x5c
jne 0x586b20
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0xc4]
push 1
push dword [esp + 0x4c]
push dword [ebx + 0x40]
push dword [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00584b00
mov ecx, dword [esp + 0x30]
add esp, 0x18
mov esi, eax
cmp dword [ecx], 0
jne 0x586928
test esi, esi
jne 0x586b61
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x2c], ecx
cmp byte [ebx + 1], 0x5c
jne 0x586b41
cmp byte [ebx + 2], 0x45
jne 0x586b41
add ebx, 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], ebx
cmp byte [ebx + 1], 0x5c
je 0x586b26
mov edx, ebx
cmp ecx, 0xd
je 0x586b51
cmp ecx, 0xa
jne 0x586e8f
mov edi, dword [esp + 0x24]
or dword [edi + 0x64], 0x800
jmp 0x586e93
cmp esi, 5
jne 0x586b6b
lea ecx, [esi + 3]
jmp 0x586b14
cmp esi, 0xc
je 0x589d21
cmp esi, 0x1a
jne 0x586baf
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 1], 0x5c
jne 0x586b99
cmp byte [ebx + 2], 0x45
jne 0x586b99
mov ecx, dword [esp + 0x30]
add ebx, 2
mov edi, dword [esp + 0x28]
jmp 0x58717a
mov ecx, dword [esp + 0x30]
mov esi, 1
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], esi
jmp 0x58717e
cmp esi, 0x19
je 0x586c11
inc dword [esp + 0x30]
lea eax, [esi - 6]
add dword [esp + 0x28], 2
mov edx, dword [ebx + 8]
cmp eax, 0x1c
ja case.0x586bd3.12
movzx eax, byte [eax + 0x58a0d4]
jmp dword [eax*4 + 0x58a0a0]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esi*4 + 0x8a3824]
mov dword [esp + 0x7c], ecx
dec ebx
mov ecx, edi
mov edi, dword [esp + 0x28]
jmp 0x587176
xor ecx, ecx
nop word [eax + eax]
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0x108], al
inc ecx
cmp ecx, 0x20
jb 0x586c00
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
mov ebp, 1
xor ecx, ecx
mov dword [esp + 0x1c], ebp
nop dword [eax]
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0x108], al
inc ecx
cmp ecx, 0x20
jb 0x586c30
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
jmp 0x587182
xor ecx, ecx
nop word [eax + eax]
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0x108], al
inc ecx
cmp ecx, 0x20
jb 0x586c60
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
mov ebp, 1
xor ecx, ecx
mov dword [esp + 0x1c], ebp
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0x108], al
inc ecx
cmp ecx, 0x20
jb 0x586c90
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
jmp 0x587182
lea eax, [esp + 0x108]
xor esi, esi
sub edx, eax
lea ecx, [esp + 0x108]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
or byte [ecx], al
cmp esi, 0x20
jb 0x586cc6
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
mov ebp, 1
lea eax, [esp + 0x108]
xor esi, esi
mov dword [esp + 0x1c], ebp
sub edx, eax
nop
lea ecx, [esp + 0x108]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jb 0x586d00
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
jmp 0x587182
push 0xffffffffffffffff
push 0x78b240
push ebx
push dword [esp + 0x54]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.00583dc0
mov ebx, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
push 0x78b240
push ebx
push dword [esp + 0x50]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.00583e30
mov ebx, dword [esp + 0x24]
add esp, 0x14
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
push 0xffffffffffffffff
push 0x78b290
push ebx
push dword [esp + 0x54]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.00583dc0
mov ebx, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
push 0x78b290
push ebx
push dword [esp + 0x50]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.00583e30
mov ebx, dword [esp + 0x24]
add esp, 0x14
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x58717a
push ecx
lea eax, [esp + 0x84]
mov dword [esp + 0x40], 0
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x88], 0
push eax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0058b770
add esp, 0x14
test eax, eax
je 0x586928
xor eax, eax
cmp esi, 0x10
sete al
cmp eax, dword [esp + 0xe0]
mov eax, dword [esp + 0x44]
sete cl
add cl, 3
mov byte [eax], cl
mov ecx, dword [esp + 0x44]
mov al, byte [esp + 0x3c]
inc ecx
mov dword [esp + 0x44], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x44]
mov al, byte [esp + 0x80]
inc ecx
mov dword [esp + 0x44], ecx
mov byte [ecx], al
mov ecx, edi
inc dword [esp + 0x44]
mov edi, dword [esp + 0x28]
jmp 0x587172
test byte [esp + 0x48], 0x40
mov ebx, dword [esp + 0x10]
jne 0x589d16
movzx ecx, byte [ebx]
jmp 0x586b18
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x20], 0
jne 0x58712f
cmp byte [ebx + 1], 0x2d
jne 0x58712f
lea ebx, [edx + 2]
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x5c
jne 0x586efe
cmp byte [ebx + 1], 0x45
jne 0x586ec8
add ebx, 2
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x5c
je 0x586eb4
jmp 0x586efe
cmp byte [ebx], 0x5c
jne 0x586efe
nop dword [eax]
cmp byte [ebx + 1], 0x51
jne 0x586efe
add ebx, 2
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x5c
jne 0x586ef6
cmp byte [ebx + 1], 0x45
jne 0x586ef6
add ebx, 2
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x5c
je 0x586ed0
jmp 0x586efe
mov dword [esp + 0x20], 1
mov al, byte [ebx]
test al, al
je 0x587123
cmp dword [esp + 0x20], 0
jne 0x586f17
cmp al, 0x5d
je 0x587123
cmp dword [esp + 0x4c], 0
movzx eax, al
mov dword [esp + 0x30], eax
mov edx, eax
mov dword [esp + 0x5c], eax
je 0x587051
cmp eax, 0xc0
jb 0x587051
test al, 0x20
jne 0x586f64
and eax, 0x1f
inc ebx
shl eax, 6
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
movzx eax, byte [ebx]
and eax, 0x3f
mov dword [esp + 0x10], ebx
or ecx, eax
mov dword [esp + 0x5c], ecx
mov edx, ecx
jmp 0x587055
movzx ecx, byte [ebx + 1]
and ecx, 0x3f
test al, 0x10
jne 0x586f95
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 2
mov dword [esp + 0x5c], ecx
mov edx, ecx
mov dword [esp + 0x10], ebx
jmp 0x587055
test al, 8
jne 0x586fcb
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 3
mov dword [esp + 0x5c], ecx
mov edx, ecx
mov dword [esp + 0x10], ebx
jmp 0x587055
test al, 4
jne 0x58700a
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 4
mov dword [esp + 0x5c], ecx
mov edx, ecx
mov dword [esp + 0x10], ebx
jmp 0x587055
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 5
mov dword [esp + 0x5c], ecx
mov edx, ecx
mov dword [esp + 0x10], ebx
jmp 0x587055
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x20], 0
jne 0x5870e5
cmp edx, 0x5c
jne 0x5870ae
push 1
push dword [esp + 0x4c]
lea eax, [esp + 0x64]
push dword [edi + 0x40]
mov edi, dword [esp + 0x24]
push edi
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00584b00
add esp, 0x18
cmp dword [edi], 0
jne 0x586928
test eax, eax
je 0x5870a4
cmp eax, 5
jne 0x589d30
mov ebx, dword [esp + 0x10]
lea ecx, [eax + 3]
jmp 0x5870e9
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
jmp 0x5870e9
cmp edx, 0x5b
jne 0x5870e5
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x5870c2
cmp al, 0x2e
je 0x5870c2
cmp al, 0x3d
jne 0x5870e5
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.00585350
mov edi, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x589d30
mov ebx, dword [esp + 0x10]
jmp 0x5870e9
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jb 0x589d3f
je 0x58712b
mov edi, 2
mov dword [esp + 0x28], edi
cmp ecx, 0xd
je 0x58710a
cmp ecx, 0xa
jne 0x58711a
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
or dword [eax + 0x64], 0x800
jmp 0x587156
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
jmp 0x587156
mov ebx, edx
mov dword [esp + 0x10], ebx
jmp 0x58712f
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ebp
mov edi, ebp
cmp ebp, 2
jge 0x587141
lea edi, [ebp + 1]
mov dword [esp + 0x28], edi
cmp edi, 1
jne 0x587150
cmp byte [ebx + 1], 0x5d
je 0x5872a0
push ecx
push ecx
push dword [esp + 0x2c]
push dword [esp + 0x54]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.00584150
add esp, 0x18
lea ecx, [esi + eax]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
inc ebx
mov dword [esp + 0x10], ebx
movzx edx, byte [ebx]
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x5871bf
test eax, eax
je 0x5871b0
lea ebx, [eax + 1]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x5871c3
mov eax, dword [esp + 0x18]
mov dword [eax], 6
jmp 0x589fc7
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
cmp eax, 0x5d
jne 0x586660
test esi, esi
jne 0x586660
mov eax, edx
mov ebx, 0xffffffff
cmp dword [esp + 0x44], eax
mov edx, 1
mov eax, dword [esp + 0x50]
cmova eax, edx
mov edx, dword [esp + 0x40]
cmp edx, 0xfffffffe
cmove edx, ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x40], edx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x5c], edx
test eax, eax
je 0x587430
test ebp, ebp
je 0x58723c
test dword [esp + 0x48], 0x20000000
je 0x587430
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
mov byte [eax], 0
inc dword [esp + 0x44]
cmp dword [esp + 0x34], 0
mov byte [ebx], 0x70
setne al
mov byte [ebx + 3], al
test ecx, ecx
jle 0x5873ff
or al, 2
mov byte [ebx + 3], al
add ebx, 4
mov eax, dword [esp + 0x44]
sub eax, ebx
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.0058ca30
movups xmm0, xmmword [esp + 0x114]
add esp, 0xc
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esp + 0x118]
movups xmmword [ebx + 0x10], xmm0
mov ecx, dword [esp + 0x44]
add ecx, 0x20
jmp 0x587403
mov eax, dword [esp + 0x74]
inc ebx
cmp dword [esp + 0x34], 0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x5c], eax
je 0x58738e
mov edi, dword [esp + 0x40]
mov eax, 0xffffffff
mov ebx, dword [esp + 0x4c]
cmp edi, 0xfffffffe
cmove edi, eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x8c], edi
test ebx, ebx
je 0x587342
test byte [esp + 0x48], 1
je 0x587342
mov eax, ecx
test eax, eax
jns 0x5872f2
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x78cc78]
mov edx, dword [esp + 0x2c]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x587311
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x78ee78]
mov cl, byte [eax*8 + 0x78b8e3]
test cl, cl
je 0x587346
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
lea edx, [eax + 3]
mov word [eax], 0x90f
mov byte [eax + 2], cl
mov dword [esp + 0x14], edx
jmp 0x587484
mov edx, dword [esp + 0x2c]
test byte [esp + 0x48], 1
mov ecx, dword [esp + 0x14]
setne al
add al, 0x1f
mov byte [ecx], al
lea esi, [ecx + 1]
test ebx, ebx
je 0x58737c
cmp edx, 0x7f
jbe 0x58737c
push esi
push edx
call fcn.0059af30
add esp, 8
lea edx, [esi + eax]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x14], edx
jmp 0x587484
mov byte [esi], dl
lea edx, [esi + 1]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x14], edx
jmp 0x587484
cmp dword [esp + 0x4c], 0
je 0x5873a8
cmp ecx, 0x7f
jbe 0x5873a8
lea eax, [esp + 0x100]
push eax
push ecx
jmp 0x588e69
mov byte [esp + 0x100], cl
mov esi, 1
cmp dword [esp + 0x4c], 0
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
je 0x589bdd
test byte [esp + 0x48], 1
je 0x589be2
movzx edx, byte [esp + 0x100]
cmp edx, 0xc0
jb 0x589b62
test dl, 0x20
jne 0x589ab5
movzx eax, byte [esp + 0x101]
and edx, 0x1f
jmp 0x589b5a
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov eax, ecx
mov ebp, dword [esp + 0x24]
sub eax, edx
mov edi, dword [esp + 0x18]
sar eax, 8
mov byte [edx + 1], al
mov al, cl
sub al, dl
mov dword [esp + 0x14], ecx
mov byte [edx + 2], al
mov edx, ecx
mov ebx, dword [esp + 0x10]
inc ebx
jmp 0x586037
mov edx, dword [esp + 0x34]
cmp edx, ebp
mov ecx, dword [esp + 0x14]
setne al
add al, 0x6e
mov byte [ecx], al
inc ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], ecx
jne 0x58747b
test edx, edx
je 0x587464
xor ecx, ecx
not byte [esp + ecx + 0x108]
inc ecx
cmp ecx, 0x20
jb 0x587453
mov ecx, dword [esp + 0x14]
movups xmm0, xmmword [esp + 0x108]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0x118]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
mov dword [esp + 0x14], ecx
mov edx, ecx
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
inc ebx
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], eax
jmp 0x586037
test esi, esi
je case.0x586410.1
mov al, byte [ebx + 1]
inc ebx
xor ecx, ecx
or esi, 0xffffffff
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], esi
cmp al, 0x30
jb 0x587500
cmp al, 0x39
ja 0x5874e8
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x5874d1
mov dword [esp + 0x30], ecx
test ecx, ecx
js 0x589d66
cmp ecx, 0xffff
jg 0x589d66
cmp byte [ebx], 0x7d
jne 0x58750d
mov esi, ecx
mov dword [esp + 0x1c], esi
jmp 0x58755b
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x7d
je 0x58755b
xor edx, edx
mov dword [esp + 0x1c], edx
cmp al, 0x30
jb 0x587553
nop
cmp al, 0x39
ja 0x587537
movzx eax, al
lea edx, [edx + edx*4]
inc ebx
lea edx, [edx - 0x18]
lea edx, [eax + edx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x587520
mov dword [esp + 0x1c], edx
test edx, edx
js 0x589d66
cmp edx, 0xffff
jg 0x589d66
mov ecx, dword [esp + 0x30]
cmp edx, ecx
jb 0x589d75
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
cmp dword [edx], 0
jne 0x589fc7
mov eax, dword [esp + 0x1c]
jmp 0x587596
xor ecx, ecx
or eax, 0xffffffff
jmp 0x58758a
mov ecx, 1
or eax, 0xffffffff
jmp 0x58758a
xor ecx, ecx
mov eax, 1
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x38]
test esi, esi
je 0x589d84
test ecx, ecx
jne 0x5875cf
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x6c], edx
cmp ecx, eax
mov dword [esp + 0x50], 0
mov edx, 2
mov dword [esp + 0x3c], 0
cmove edx, dword [esp + 0x50]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x60], esi
test edi, edi
je 0x5876b4
inc ebx
nop
mov cl, byte [ebx]
mov edx, dword [ebp + 0xc]
movzx eax, cl
test byte [eax + edx], 1
je 0x58761d
nop
mov cl, byte [ebx + 1]
inc ebx
movzx eax, cl
test byte [eax + edx], 1
jne 0x587610
cmp cl, 0x23
jne 0x5876a7
mov dl, byte [ebx + 1]
inc ebx
test dl, dl
je 0x587600
nop
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x1c]
test ecx, ecx
je 0x58765e
cmp ebx, eax
jae 0x587682
push dword [esp + 0x4c]
lea esi, [ebp + 0x80]
push esi
push eax
push ecx
push ebx
call fcn.0059ac50
add esp, 0x14
test eax, eax
je 0x587682
mov ecx, dword [esi]
add ebx, ecx
jmp 0x587600
mov ecx, dword [ebp + 0x80]
sub eax, ecx
cmp ebx, eax
ja 0x587682
cmp dl, byte [ebp + 0x84]
jne 0x587682
cmp ecx, 1
je 0x58765a
mov al, byte [ebx + 1]
cmp al, byte [ebp + 0x85]
je 0x58765a
inc ebx
cmp dword [esp + 0x4c], 0
je 0x58769c
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x58769c
mov al, byte [ebx + 1]
inc ebx
and al, 0xc0
cmp al, 0x80
je 0x587692
mov dl, byte [ebx]
test dl, dl
jne 0x587630
jmp 0x587600
movsd xmm2, qword [0x768350]
dec ebx
mov dword [esp + 0x10], ebx
mov cl, byte [ebx + 1]
cmp cl, 0x2b
jne 0x5876d3
inc ebx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 1
mov dword [esp + 0x10], ebx
jmp 0x5876f5
cmp cl, 0x3f
jne 0x5876ea
mov ecx, dword [esp + 0xd0]
inc ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebx
jmp 0x5876f5
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x38]
cmp byte [edi], 0x75
jne 0x587791
lea ecx, [edi + 3]
cmp ecx, edi
jbe 0x58771b
mov al, byte [edi + 2]
mov byte [ecx + 2], al
mov al, byte [edi + 1]
mov byte [ecx + 1], al
mov al, byte [edi]
mov byte [ecx], al
jmp 0x58772a
mov byte [ecx], 0x75
mov al, byte [edi + 1]
mov byte [ecx + 1], al
mov al, byte [edi + 2]
mov byte [ecx + 2], al
add dword [esp + 0x14], 6
mov esi, dword [esp + 0x58]
mov word [edi], 0x81
mov byte [edi + 2], 6
mov word [edi + 6], 0x78
mov byte [edi + 8], 6
mov dword [esp + 0xa0], 9
test esi, esi
jne 0x58778b
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x20]
add eax, 2
cmp edx, eax
jb 0x58778b
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
shl eax, 8
or ecx, eax
mov eax, edi
sub eax, dword [ebp + 0x14]
inc eax
cmp ecx, eax
jne 0x58778b
lea eax, [ecx + 3]
shr eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [ebp + 0x20]
mov byte [eax - 1], cl
mov ebx, dword [esp + 0x10]
jmp 0x587795
mov esi, dword [esp + 0x58]
mov dl, byte [edi]
cmp dl, 0x1d
je 0x587eb7
cmp dl, 0x1e
je 0x587eb7
cmp dl, 0x1f
je 0x587eb7
cmp dl, 0x20
je 0x587eb7
cmp dl, 0x17
jae 0x5877d1
movzx esi, dl
mov eax, 0x34
mov dword [esp + 0x28], esi
jmp 0x587f2e
cmp dl, 0x6e
je 0x587e17
cmp dl, 0x6f
je 0x587e17
cmp dl, 0x70
je 0x587e17
cmp dl, 0x71
je 0x587e17
cmp dl, 0x72
je 0x587e17
cmp dl, 0x73
je 0x587e17
cmp dl, 0x74
je 0x587e17
cmp dl, 0x7d
jb 0x587e03
cmp dl, 0x87
ja 0x587e03
mov eax, dword [esp + 0x14]
xor ecx, ecx
sub eax, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], ecx
cmp dl, 0x87
jne 0x587845
cmp byte [edi + 3], 0x91
je 0x587ddf
mov ecx, dword [esp + 0x30]
cmp dl, 0x81
jae 0x58786e
test ecx, ecx
jne 0x587ddf
mov eax, dword [esp + 0x1c]
test eax, eax
js 0x587863
cmp eax, 1
jle 0x587872
mov eax, 1
mov dword [esp + 0x1c], eax
jmp 0x587872
mov eax, dword [esp + 0x1c]
test ecx, ecx
jne 0x587927
mov ebx, dword [esp + 0x14]
push dword [esp + 0x64]
push ebp
mov byte [ebx], cl
push dword [esp + 0x54]
cmp eax, 1
jg 0x5878da
push 1
push edi
call fcn.005843f0
push dword [esp + 0x3c]
lea esi, [edi + 1]
push edi
push esi
call fcn.0058ca30
mov edx, dword [esp + 0x3c]
inc ebx
add esp, 0x20
mov dword [esp + 0x14], ebx
test edx, edx
jne 0x5878c0
mov byte [edi], 0xa1
mov ebx, dword [esp + 0x10]
jmp 0x587ddf
mov al, byte [esp + 0x2c]
sub al, 0x6e
mov dword [esp + 0x50], edi
mov byte [edi], al
dec edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38], esi
jmp 0x587a84
push 4
push edi
call fcn.005843f0
push dword [esp + 0x3c]
lea eax, [edi + 4]
push edi
push eax
call fcn.0058ca30
mov al, byte [esp + 0x4c]
lea ecx, [edi + 2]
mov edx, dword [esp + 0x3c]
sub al, 0x6e
mov byte [edi], al
add ebx, 4
mov byte [edi + 1], 0x83
lea eax, [ecx + 2]
add esp, 0x20
mov dword [esp + 0x14], ebx
mov word [ecx], 0
dec edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
jmp 0x587a84
cmp ecx, 1
jbe 0x587a7a
test esi, esi
je 0x58797e
mov eax, dword [esp + 0xa0]
dec ecx
mov edx, ecx
imul edx, eax
movd xmm1, ecx
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
comisd xmm1, xmm2
ja 0x589fa8
mov ecx, dword [esi]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jl 0x589fa8
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x30]
mov dword [esi], eax
jmp 0x587a7a
cmp dword [esp + 0xb8], 0
je 0x5879a2
cmp dword [esp + 0x6c], 0
jge 0x5879a2
mov eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x28]
mov ebx, 1
mov eax, dword [esp + 0x14]
nop
mov esi, dword [ebp + 0x20]
push edx
push edi
push eax
call fcn.0059ce60
mov eax, dword [ebp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0x64]
sub eax, esi
mov edi, dword [ebp + 0x10]
add ecx, 0xffffff9c
add eax, edi
add eax, ecx
cmp dword [ebp + 0x20], eax
jbe 0x587a17
push ebp
call fcn.0058ab80
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x586928
mov ecx, dword [ebp + 0x10]
mov eax, ecx
mov edx, dword [esp + 0x64]
sub eax, edi
add edx, eax
mov eax, ecx
sub eax, edi
mov dword [esp + 0x64], edx
add esi, eax
mov edi, ecx
mov eax, dword [ebp + 0x3c]
sub eax, esi
add eax, 0xffffff9c
add eax, ecx
add eax, edx
cmp dword [ebp + 0x20], eax
ja 0x5879d6
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
cmp edi, esi
jae 0x587a4f
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x20]
add ecx, edx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [edi + 1]
add edi, 2
mov eax, dword [ebp + 0x20]
add cl, dl
mov byte [eax + 1], cl
add dword [ebp + 0x20], 2
cmp edi, esi
jb 0x587a23
mov eax, dword [esp + 0x14]
inc ebx
mov ecx, dword [esp + 0x30]
add eax, edx
mov edi, dword [esp + 0x38]
mov dword [esp + 0x64], esi
mov dword [esp + 0x14], eax
cmp ebx, ecx
jl 0x5879b0
mov ebx, dword [esp + 0x10]
movsd xmm2, qword [0x768350]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x587a86
sub edx, ecx
test edx, edx
js 0x587cb6
mov esi, dword [esp + 0x58]
test esi, esi
je 0x587ae3
test edx, edx
jle 0x587ae3
mov eax, dword [esp + 0xa0]
add eax, 7
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, edx
mulsd xmm1, xmm0
sub ecx, 6
comisd xmm1, xmm2
ja 0x589fa8
mov edx, dword [esi]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x589fa8
lea eax, [ecx + edx]
mov dword [esi], eax
jmp 0x587c60
lea ebp, [edx - 1]
mov dword [esp + 0x50], ebp
test ebp, ebp
js 0x587c60
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
sub cl, 0x6e
mov dword [esp + 0x2c], ecx
mov esi, dword [eax + 0x20]
mov eax, dword [esp + 0x28]
nop dword [eax]
mov byte [edx], cl
mov edi, esi
inc edx
mov dword [esp + 0x14], edx
test ebp, ebp
je 0x587b4a
lea ecx, [edx + 1]
mov byte [edx], 0x83
mov edx, dword [esp + 0x34]
mov eax, ecx
sub eax, edx
mov dword [esp + 0x34], ecx
neg edx
sbb edx, edx
and edx, eax
mov eax, edx
mov byte [ecx + 1], dl
sar eax, 8
lea edx, [ecx + 2]
mov byte [ecx], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], edx
push eax
push dword [esp + 0x3c]
push edx
call fcn.0059ce60
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x64]
add ecx, 0xffffff9c
mov edx, dword [eax + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
sub eax, esi
add eax, ebx
add eax, ecx
cmp edx, eax
jbe 0x587bc1
mov esi, dword [esp + 0x24]
nop word [eax + eax]
push esi
call fcn.0058ab80
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x586928
mov ecx, dword [esi + 0x10]
mov eax, ecx
mov edx, dword [esi + 0x20]
sub eax, ebx
add dword [esp + 0x64], eax
mov eax, ecx
sub eax, ebx
mov ebx, ecx
add edi, eax
mov eax, dword [esi + 0x3c]
sub eax, edi
add eax, ecx
mov ecx, dword [esp + 0x64]
add ecx, 0xffffff9c
add eax, ecx
cmp edx, eax
ja 0x587b80
mov eax, dword [esp + 0x64]
mov esi, edx
cmp eax, edi
jae 0x587c39
mov ecx, 1
test ebp, ebp
mov ebp, dword [esp + 0x24]
mov esi, 4
mov edx, ecx
mov ebx, ecx
cmovne edx, esi
cmovne ebx, esi
nop dword [eax]
movzx ecx, byte [eax]
movzx eax, byte [eax + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x20]
add ecx, edx
add ecx, dword [esp + 0x28]
sar ecx, 8
mov byte [eax], cl
mov eax, dword [esp + 0x64]
mov cl, byte [esp + 0x28]
add cl, bl
add cl, byte [eax + 1]
mov eax, dword [ebp + 0x20]
mov byte [eax + 1], cl
mov eax, dword [esp + 0x64]
mov esi, dword [ebp + 0x20]
add eax, 2
add esi, 2
mov dword [esp + 0x64], eax
mov dword [ebp + 0x20], esi
cmp eax, edi
jb 0x587bf0
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
add edx, eax
mov ecx, dword [esp + 0x2c]
sub ebp, 1
mov dword [esp + 0x64], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x50], ebp
jns 0x587b10
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
test esi, esi
je 0x5881ec
mov ecx, dword [esp + 0x14]
mov ebx, ecx
mov edx, ecx
sub ebx, esi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub esi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and esi, ecx
mov ecx, dword [esp + 0x14]
mov byte [ecx], 0x78
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [esp + 0x14], ecx
mov byte [edx + 1], al
mov byte [edx + 2], bl
test esi, esi
jne 0x587c70
jmp 0x5881e8
mov edx, dword [esp + 0x14]
movzx ecx, byte [edx - 2]
lea edi, [edx - 3]
movzx eax, byte [edi + 2]
mov ebp, edi
shl ecx, 8
or ecx, eax
sub ebp, ecx
mov al, byte [ebp]
cmp al, 0x81
je 0x587cd9
cmp al, 0x82
jne 0x587cf8
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x587ce7
mov byte [ebp], 0x83
jmp 0x587d00
cmp al, 0x81
jne 0x587cfc
mov eax, dword [esp + 0x2c]
add al, 0x79
mov byte [edi], al
jmp 0x5881e8
mov ebx, dword [esp + 0x3c]
cmp al, 0x82
je 0x587ceb
cmp dword [esp + 0x58], 0
jne 0x587d46
mov esi, ebp
nop dword [eax]
push 0
push dword [esp + 0x28]
push dword [esp + 0x54]
push edi
push esi
call fcn.0058a710
add esp, 0x14
test eax, eax
jne 0x587d3e
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x77
je 0x587d10
jmp 0x587d42
add byte [ebp], 5
mov edx, dword [esp + 0x14]
test ebx, ebx
je 0x587dcf
mov al, byte [ebp]
cmp al, 0x87
je 0x587d63
cmp al, 0x8c
je 0x587d63
inc al
mov byte [ebp], al
mov byte [edi], 0x7b
jmp 0x587db3
push dword [esp + 0x64]
mov ebx, edx
mov byte [edx], 0
push dword [esp + 0x28]
sub ebx, ebp
push dword [esp + 0x54]
push 3
push ebp
call fcn.005843f0
push ebx
lea eax, [ebp + 3]
push ebp
push eax
call fcn.0058ca30
mov ecx, dword [esp + 0x34]
add ebx, 3
mov byte [ebp], 0x84
mov eax, ebx
sar eax, 8
add esp, 0x20
mov byte [ecx + 3], 0x7b
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
add ecx, 6
mov dword [esp + 0x14], ecx
mov byte [ebp + 1], al
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x50]
test eax, eax
je 0x587dbe
mov byte [eax], 0x94
cmp dword [esp + 0x30], 2
mov ebx, dword [esp + 0x10]
jae 0x5881f7
jmp 0x587ddb
mov eax, dword [esp + 0x2c]
add al, 0x79
mov byte [edi], al
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xb0]
or dword [ebp + 0x68], eax
inc ebx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x38], 0
jmp 0x586037
cmp dl, 0x9d
je 0x587ddf
mov eax, dword [esp + 0x18]
mov dword [eax], 0xb
jmp 0x589fc7
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x587e27
mov edx, edi
mov dword [esp + 0x14], edx
jmp 0x587de3
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x587e65
cmp edx, 0xffffffff
jne 0x587e4a
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add al, 0x62
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x5881e8
cmp edx, 1
jne 0x587e85
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add al, 0x66
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x5881e8
cmp ecx, 1
jne 0x587e85
cmp edx, 0xffffffff
jne 0x587e85
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add al, 0x64
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x5881e8
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add al, 0x68
mov byte [ebx], al
mov eax, ecx
shr eax, 8
mov byte [ebx + 1], al
xor eax, eax
cmp edx, 0xffffffff
mov byte [ebx + 2], cl
cmove edx, eax
mov eax, edx
mov byte [ebx + 4], dl
sar eax, 8
mov byte [ebx + 3], al
lea eax, [ebx + 5]
jmp 0x5881e4
movzx eax, dl
sub eax, 0x1e
je 0x587edb
sub eax, 1
je 0x587ed4
sub eax, 1
je 0x587ecd
xor eax, eax
jmp 0x587ee0
mov eax, 0x27
jmp 0x587ee0
mov eax, 0x1a
jmp 0x587ee0
mov eax, 0xd
cmp dword [esp + 0x4c], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x34], eax
je 0x587f4c
mov al, byte [esi - 1]
lea ecx, [esi - 1]
and al, 0xc0
cmp al, 0x80
jne 0x587f4c
nop dword [eax + eax]
mov al, byte [ecx - 1]
dec ecx
and al, 0xc0
cmp al, 0x80
je 0x587f00
sub esi, ecx
lea eax, [esp + 0x128]
push esi
push ecx
push eax
call fcn.0059ce60
mov dl, byte [edi]
add esp, 0xc
or esi, 0x10000000
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
cmp dl, 0x10
je 0x587f7a
cmp dl, 0xf
je 0x587f7a
mov dword [esp + 0x80], 0xffffffff
or edx, 0xffffffff
jmp 0x587f8d
movzx esi, byte [esi - 1]
mov dword [esp + 0x28], esi
cmp dl, 0x1e
ja 0x587f2a
mov edi, dword [esp + 0x30]
cmp edi, 1
jbe 0x587f74
mov eax, dword [ebp + 0x68]
or eax, dword [esp + 0xa8]
mov dword [esp + 0x74], esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
jmp 0x587f32
mov ecx, dword [esp + 0x38]
movzx edx, byte [ecx + 1]
movzx ecx, byte [ecx + 2]
mov dword [esp + 0x80], ecx
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
test esi, esi
je 0x587ddf
add dword [esp + 0x2c], eax
test edi, edi
jne 0x588004
mov eax, dword [esp + 0x2c]
mov ecx, esi
cmp ecx, 0xffffffff
jne 0x587fce
mov ecx, dword [esp + 0x38]
add al, 0x21
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x588196
cmp ecx, 1
jne 0x587fe5
mov ecx, dword [esp + 0x38]
add al, 0x25
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x588196
mov ebx, dword [esp + 0x38]
add al, 0x27
mov byte [ebx], al
mov eax, ecx
mov byte [ebx + 2], cl
lea ecx, [ebx + 3]
sar eax, 8
mov byte [ebx + 1], al
mov dword [esp + 0x14], ecx
jmp 0x588196
cmp edi, 1
jne 0x588057
cmp esi, 0xffffffff
jne 0x588024
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
add al, 0x23
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x588196
mov dword [esp + 0x14], ecx
cmp esi, 1
je 0x587ddf
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
add al, 0x27
mov byte [ecx], al
lea eax, [ebx - 1]
dec bl
sar eax, 8
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [esp + 0x14], ecx
jmp 0x588196
mov ebx, dword [esp + 0x38]
add al, 0x29
mov ecx, dword [esp + 0x30]
mov byte [ebx], al
mov eax, ecx
shr eax, 8
mov byte [ebx + 1], al
lea eax, [ebx + 3]
mov byte [ebx + 2], cl
mov dword [esp + 0x14], eax
test esi, esi
jns 0x5880f1
cmp dword [esp + 0x4c], 0
mov ebx, dword [esp + 0x28]
je 0x5880c3
test ebx, 0x10000000
je 0x5880c3
mov esi, ebx
lea ecx, [esp + 0x128]
and esi, 7
push esi
push ecx
push eax
call fcn.0059ce60
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x2c]
add ecx, esi
mov edx, dword [esp + 0x34]
add al, 0x21
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x58819a
mov ecx, dword [esp + 0x14]
mov byte [ecx], bl
inc ecx
test edx, edx
js 0x5880df
mov byte [ecx], dl
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x80]
mov byte [eax], cl
lea ecx, [eax + 1]
mov eax, dword [esp + 0x2c]
add al, 0x21
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x58819a
cmp esi, ecx
je 0x588192
cmp dword [esp + 0x4c], 0
mov ebx, dword [esp + 0x28]
je 0x58812f
test ebx, 0x10000000
je 0x58812f
mov esi, ebx
lea ecx, [esp + 0x128]
and esi, 7
push esi
push ecx
push eax
call fcn.0059ce60
mov eax, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x34]
add eax, esi
jmp 0x588132
mov byte [eax], bl
inc eax
mov dword [esp + 0x14], eax
test edx, edx
js 0x58814d
mov ecx, dword [esp + 0x80]
mov byte [eax], dl
mov byte [eax + 1], cl
add eax, 2
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
cmp ecx, 1
jne 0x58816d
mov ecx, dword [esp + 0x14]
add al, 0x25
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x58819a
mov esi, dword [esp + 0x14]
add al, 0x27
inc dword [esp + 0x14]
mov byte [esi], al
mov eax, ecx
mov esi, dword [esp + 0x14]
sar eax, 8
mov byte [esi + 1], cl
mov ecx, esi
add ecx, 2
mov byte [esi], al
mov dword [esp + 0x14], ecx
jmp 0x58819a
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x4c], 0
je 0x5881ca
test ebx, 0x10000000
je 0x5881ca
and ebx, 7
lea eax, [esp + 0x128]
push ebx
push eax
push ecx
call fcn.0059ce60
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x34]
add ecx, ebx
jmp 0x5881cd
mov byte [ecx], bl
inc ecx
mov dword [esp + 0x14], ecx
test edx, edx
js 0x5881e8
lea eax, [ecx + 1]
mov byte [ecx], dl
mov ecx, dword [esp + 0x80]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x3c], 0
je 0x587ddb
mov eax, dword [esp + 0x60]
movzx edx, byte [eax]
lea eax, [edx - 0x1d]
cmp eax, 0x53
ja case.0x588211.33
movzx eax, byte [eax + 0x58a108]
jmp dword [eax*4 + 0x58a0f4]
mov eax, dword [esp + 0x60]
mov al, byte [eax + 3]
cmp al, 0x10
je 0x58823b
cmp al, 0xf
je 0x58823b
movzx eax, byte [edx + 0x78b198]
xor ecx, ecx
add eax, ecx
add dword [esp + 0x60], eax
jmp case.0x588211.33
movzx eax, byte [edx + 0x78b198]
mov ecx, 2
add eax, ecx
add dword [esp + 0x60], eax
jmp case.0x588211.33
movzx edx, byte [edx + 0x78b198]
add edx, dword [esp + 0x60]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
test esi, esi
je 0x5882a2
mov al, byte [edx - 1]
cmp al, 0xc0
jb 0x5882a2
movzx eax, al
and eax, 0x3f
movzx eax, byte [eax + 0x78a9d0]
add eax, edx
mov dword [esp + 0x60], eax
jmp 0x5882a2
add dword [esp + 0x60], 0x21
jmp case.0x588211.33
mov edx, dword [esp + 0x60]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add dword [esp + 0x60], ecx
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov edx, dword [esp + 0x60]
sub eax, edx
mov dword [esp + 0x50], eax
test eax, eax
jle 0x587ddb
movzx eax, byte [edx]
cmp eax, 0x76
jae 0x5882d3
mov al, byte [eax + 0x78a810]
test al, al
je 0x5882d3
mov byte [edx], al
jmp 0x587dd7
push dword [esp + 0x64]
mov ebp, dword [esp + 0x28]
push ebp
push esi
mov byte [ecx], 0
push 3
push dword [esp + 0x70]
call fcn.005843f0
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
push ebx
push eax
add eax, 3
push eax
call fcn.0058ca30
mov eax, dword [esp + 0x80]
add ebx, 3
mov edx, dword [esp + 0x34]
mov ecx, ebx
sar ecx, 8
add esp, 0x20
mov byte [eax], 0x81
mov byte [edx + 3], 0x78
mov byte [edx + 4], cl
mov byte [edx + 5], bl
add edx, 6
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], edx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x60]
mov byte [eax + 2], bl
mov ebx, dword [esp + 0x10]
jmp 0x587de3
mov esi, dword [esp + 0x24]
inc ebx
mov ecx, dword [esp + 0x48]
xor ebp, ebp
mov dword [esp + 0x10], ebx
mov edx, 0x85
mov dword [esp + 0x80], ecx
mov al, byte [ebx]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x3c], ebp
cmp al, 0x2a
jne 0x588585
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x58838a
movzx ecx, al
mov eax, dword [esi + 0xc]
test byte [ecx + eax], 2
je 0x588dfb
mov eax, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, ebx
mov dword [esp + 0x3c], ebp
mov edi, 0x789548
mov dword [esp + 0x50], edx
mov ecx, dword [eax + 0xc]
movzx eax, byte [ebx]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
test byte [eax + ecx], 2
je 0x5883c6
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 2
jne 0x5883b8
mov ebp, ebx
sub ebp, edx
cmp byte [ebx], 0x3a
jne 0x588407
inc ebx
mov dword [esp + 0x10], ebx
mov esi, ebx
mov dword [esp + 0x34], ebx
mov al, byte [ebx]
test al, al
je 0x5883ef
cmp al, 0x29
je 0x5883ef
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
jne 0x5883e0
mov edx, ebx
sub edx, esi
mov dword [esp + 0x3c], edx
cmp edx, 0xff
ja 0x589d8f
mov edx, dword [esp + 0x50]
cmp byte [ebx], 0x29
jne 0x589dc8
xor ebx, ebx
mov esi, 0x789578
mov dword [esp + 0x80], ebx
nop
cmp ebp, dword [esi]
jne 0x588433
push ebp
push edi
push edx
call fcn.005a47e0
add esp, 0xc
test eax, eax
je 0x588453
inc edi
inc ebx
add edi, dword [esi]
add esi, 0xc
mov dword [esp + 0x80], ebx
cmp esi, str._b__w_
jge 0x589dc4
mov edx, dword [esp + 0x50]
jmp 0x588420
lea ecx, [ebx + ebx*2]
mov eax, dword [ecx*4 + 0x78957c]
cmp eax, 0x9e
jne 0x5884dc
cmp dword [esp + 0x3c], 0
jne 0x589db1
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x24]
mov dword [edx + 0x6c], 1
test ecx, ecx
je 0x5884b3
mov ebx, dword [esp + 0x14]
nop dword [eax]
mov byte [ebx], 0xa0
mov al, byte [ecx + 5]
mov byte [ebx + 1], al
mov al, byte [ecx + 4]
mov byte [ebx + 2], al
add ebx, 3
mov ecx, dword [ecx]
test ecx, ecx
jne 0x588490
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x80]
cmp dword [edx + 0x5c], 0
mov ebp, 0xffffffff
mov ecx, dword [esp + 0x14]
setg al
add al, 0x9e
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
cmp ecx, 0xfffffffe
cmove ecx, ebp
mov dword [esp + 0x40], ecx
jmp 0x58853e
mov edx, dword [esp + 0x3c]
test edx, edx
jne 0x5884f9
test eax, eax
js 0x589d9e
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x58853a
mov ebx, dword [ecx*4 + 0x789580]
test ebx, ebx
js 0x589db1
mov eax, dword [esp + 0x14]
push edx
push dword [esp + 0x38]
lea esi, [eax + 2]
mov byte [eax], bl
push esi
mov byte [eax + 1], dl
call fcn.0059ce60
mov eax, dword [esp + 0x48]
add esp, 0xc
mov byte [eax + esi], 0
inc eax
add eax, esi
mov dword [esp + 0x14], eax
mov al, bl
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
movzx eax, al
add eax, 0xffffff6a
cmp eax, 5
ja case.default.0x58854b
jmp dword [eax*4 + 0x58a15c]
or dword [edx + 0x64], 0x1000
jmp case.default.0x58854b
mov dword [edx + 0x70], 1
cmp ebx, 9
jge 0x589dc4
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
inc ebx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
jmp 0x586037
cmp al, 0x3f
jne 0x588dff
inc ebx
mov dword [esp + 0x10], ebx
mov dh, byte [ebx]
movzx eax, dh
mov dl, dh
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.0x5885ac.34
movzx eax, byte [eax + 0x58a1b0]
jmp dword [eax*4 + 0x58a174]
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
je 0x5885cf
nop
cmp al, 0x29
je 0x5885de
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
jne 0x5885c0
mov eax, dword [esp + 0x18]
mov dword [eax], 0x12
jmp 0x589fc7
cmp byte [ebx], 0
je 0x5885cf
mov edx, dword [esp + 0x14]
mov ebp, esi
mov edi, dword [esp + 0x18]
inc ebx
mov esi, dword [esp + 0x20]
jmp 0x586037
mov dword [esp + 0x3c], 1
mov ecx, 0x83
inc ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
jmp 0x58916e
mov edx, ebx
mov ecx, 0x87
mov dword [esp + 0x94], edx
cmp byte [ebx + 1], 0x3f
mov dword [esp + 0x1c], ecx
jne 0x588663
cmp byte [ebx + 2], 0x43
jne 0x588663
mov al, byte [ebx + 3]
mov ecx, 3
cmp al, 0x30
jb 0x58864d
nop dword [eax]
cmp al, 0x39
ja 0x58864d
mov al, byte [ecx + ebx + 1]
inc ecx
cmp al, 0x30
jae 0x588640
cmp byte [ecx + ebx], 0x29
jne 0x58865f
lea edx, [ecx + 1]
add edx, ebx
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x1c]
cmp byte [edx + 1], 0x3f
jne 0x588684
mov al, byte [edx + 2]
cmp al, 0x3d
je 0x58916e
cmp al, 0x21
je 0x58916e
cmp al, 0x3c
je 0x58916e
mov edi, dword [esp + 0x14]
mov ebp, 3
or edx, 0xffffffff
mov dword [esp + 0x50], ebp
mov byte [edi + 3], 0x8d
mov ebx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x52
jne 0x5886c8
cmp byte [ebx + 1], 0x26
jne 0x5887ab
lea eax, [ebx + 2]
or ecx, edx
mov dword [esp + 0x10], eax
mov byte [edi + 3], 0x8f
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
jmp 0x5886de
cmp al, 0x3c
jne 0x58879d
mov edi, 0x3e
inc ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x5886ec
cmp al, 0x39
jbe 0x589ef0
mov ecx, dword [esi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x589dd7
mov edi, ebx
lea ebx, [edi + 1]
mov dword [esp + 0x78], edi
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x588720
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x588712
mov eax, ebx
sub eax, edi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x588736
add dword [eax], 2
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x58874d
mov al, byte [ebx]
inc ebx
mov dword [esp + 0x10], ebx
cmp al, cl
jne 0x589df5
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
mov al, byte [ebx]
inc ebx
mov dword [esp + 0x10], ebx
cmp al, 0x29
jne 0x589df5
cmp dword [esp + 0x58], 0
jne 0x58916a
test edx, edx
js 0x58883c
test ecx, ecx
jle 0x589de6
test edx, edx
je 0x588817
mov eax, dword [esi + 0x40]
cmp edx, 0x2d
jne 0x588809
sub eax, ecx
lea ecx, [eax + 1]
jmp 0x58880b
cmp al, 0x27
jne 0x5887ab
mov edi, 0x27
jmp 0x5886d5
xor edi, edi
mov dword [esp + 0x34], edi
cmp al, 0x2d
je 0x5887cd
cmp al, 0x2b
je 0x5887cd
cmp al, 0x30
jb 0x5886ec
cmp al, 0x39
ja 0x5886de
xor edx, edx
jmp 0x5887d5
inc ebx
movzx edx, al
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
xor ecx, ecx
mov dword [esp + 0x54], ecx
cmp al, 0x30
jb 0x588755
cmp al, 0x39
ja 0x588800
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0x10], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x5887e5
mov dword [esp + 0x54], ecx
jmp 0x588755
add ecx, eax
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x58901e
cmp ecx, dword [esi + 0x44]
jg 0x58901e
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 5], cl
mov ecx, dword [esp + 0x1c]
mov byte [edx + 4], al
mov ebx, dword [esp + 0x10]
jmp 0x589172
mov eax, dword [esi + 0x2c]
xor esi, esi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x30], esi
jle 0x58889e
mov ebp, dword [esp + 0x88]
mov edi, eax
nop word [eax + eax]
push dword [esp + 0x90]
lea eax, [ebp + 2]
push eax
push dword [esp + 0x80]
call fcn.005a47e0
add esp, 0xc
test eax, eax
je 0x588887
add ebp, dword [edi + 0x34]
inc esi
cmp esi, dword [edi + 0x30]
jl 0x588860
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x88], ebp
mov ebp, dword [esp + 0x50]
mov ecx, dword [eax + 0x30]
cmp esi, ecx
jge 0x588972
mov edi, dword [esp + 0x88]
mov ebx, 1
mov dword [esp + 0xb0], esi
inc esi
movzx eax, byte [edi]
movzx edx, byte [edi + 1]
shl eax, 8
or edx, eax
mov dword [esp + 0x54], edx
cmp esi, ecx
jge 0x588952
mov ebp, dword [esp + 0x24]
nop dword [eax]
add edi, dword [ebp + 0x34]
push dword [esp + 0x90]
lea eax, [edi + 2]
push eax
push dword [esp + 0x80]
call fcn.005a47e0
add esp, 0xc
test eax, eax
jne 0x588908
inc esi
inc ebx
cmp esi, dword [ebp + 0x30]
jl 0x5888e0
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x88], edi
cmp ebx, 1
jle 0x58894e
mov edx, dword [esp + 0x14]
mov ebp, 5
mov ecx, dword [esp + 0xb0]
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov eax, ebx
sar eax, 8
inc byte [edx + 3]
mov byte [edx + 5], cl
mov ecx, dword [esp + 0x1c]
mov byte [edx + 6], al
mov byte [edx + 7], bl
mov ebx, dword [esp + 0x10]
jmp 0x589172
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
mov eax, edx
mov edx, dword [esp + 0x14]
shr eax, 8
mov byte [edx + 4], al
mov eax, dword [esp + 0x54]
mov byte [edx + 5], al
mov ebx, dword [esp + 0x10]
jmp 0x589172
test edi, edi
jne 0x58901e
mov eax, dword [esp + 0x78]
cmp byte [eax], 0x52
jne 0x5889ec
mov esi, dword [esp + 0x90]
lea edx, [edi + 1]
xor ecx, ecx
cmp esi, edx
jle 0x5889c3
mov ah, byte [eax + edx]
mov al, ah
sub al, 0x30
cmp al, 9
ja 0x58901e
movzx eax, ah
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
inc edx
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], ecx
cmp edx, esi
jl 0x588997
test ecx, ecx
jne 0x5889cc
mov ecx, 0xffff
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 5], cl
mov ecx, dword [esp + 0x1c]
mov byte [edx + 3], 0x8f
mov byte [edx + 4], al
mov ebx, dword [esp + 0x10]
jmp 0x589172
cmp dword [esp + 0x90], 6
jne 0x58901e
push 6
push 0x785a44
push eax
call fcn.005a47e0
add esp, 0xc
test eax, eax
jne 0x589f28
mov edx, dword [esp + 0x14]
lea ebp, [eax + 1]
mov ecx, dword [esp + 0x1c]
mov byte [edx + 3], 0x91
mov ebx, dword [esp + 0x10]
jmp 0x589172
inc dword [esi + 0x5c]
mov ecx, 0x7d
inc ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
jmp 0x58916e
inc ebx
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x29
jne 0x588a91
mov al, byte [ebx + 1]
cmp al, 0x2a
je 0x588a91
cmp al, 0x2b
je 0x588a91
cmp al, 0x3f
je 0x588a91
cmp al, 0x7b
jne 0x588a6d
lea eax, [ebx + 2]
push eax
call fcn.0058ba10
add esp, 4
test eax, eax
jne 0x588a91
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], ebp
mov ebp, esi
mov esi, dword [esp + 0x20]
mov byte [edx], 0x9d
inc edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc ebx
jmp 0x586037
inc dword [esi + 0x5c]
mov ecx, 0x7e
mov dword [esp + 0x1c], ecx
jmp 0x58916e
mov al, byte [ebx + 1]
cmp al, 0x21
je 0x588bc8
cmp al, 0x3d
je 0x588bb0
movzx ecx, al
mov eax, dword [esi + 0xc]
test byte [ecx + eax], 0x10
je 0x589e05
mov dl, dh
inc ebx
mov dword [esp + 0x10], ebx
mov edi, ebx
mov dword [esp + 0x78], edi
mov al, byte [ebx]
cmp al, 0x30
jb 0x588ae0
cmp al, 0x39
jbe 0x589ef0
mov ecx, dword [esi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x588afe
nop dword [eax]
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x588af0
mov eax, ebx
sub eax, edi
mov dword [esp + 0x90], eax
cmp dword [esp + 0x58], ebp
je 0x588d9f
mov ebp, dword [esi + 0x40]
mov eax, 0x27
inc ebp
mov ecx, 0x3e
cmp dl, 0x3c
cmove eax, ecx
cmp byte [ebx], al
jne 0x589f0e
mov ecx, dword [esi + 0x30]
cmp ecx, 0x2710
jge 0x589e6c
mov edx, dword [esp + 0x90]
lea eax, [edx + 3]
cmp eax, dword [esi + 0x34]
jle 0x588b59
mov dword [esi + 0x34], eax
cmp edx, 0x20
jg 0x589eff
mov esi, dword [esi + 0x28]
xor edi, edi
test ecx, ecx
jle 0x588d00
cmp edx, dword [esi + 4]
jne 0x588cdb
push edx
push dword [esi]
push dword [esp + 0x80]
call fcn.005a47e0
add esp, 0xc
test eax, eax
jne 0x588cdb
cmp dword [esi + 8], ebp
je 0x588cfc
test dword [esp + 0x48], 0x80000
je 0x589e33
mov eax, dword [esp + 0x24]
mov dword [eax + 0x78], 1
jmp 0x588ce8
inc dword [esi + 0x5c]
mov ecx, 0x7f
add ebx, 2
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
jmp 0x58916e
inc dword [esi + 0x5c]
mov ecx, 0x80
add ebx, 2
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
jmp 0x58916e
mov ecx, 0x81
inc ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
jmp 0x58916e
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0xb4], 1
mov byte [edx], 0x76
mov ebx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x588c3b
nop dword [eax]
cmp al, 0x39
ja 0x588c3b
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0x10], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x588c20
cmp byte [ebx], 0x29
jne 0x589e24
cmp ecx, 0xff
jg 0x589e15
mov edi, dword [esp + 0x18]
mov ebp, esi
mov esi, dword [esp + 0x20]
mov byte [edx + 1], cl
mov eax, dword [esp + 0x10]
sub eax, dword [ebp + 0x18]
inc eax
mov dword [esp + 0x38], 0
sar eax, 8
mov byte [edx + 2], al
mov al, byte [esp + 0x10]
sub al, byte [ebp + 0x18]
inc al
mov word [edx + 4], 0
mov byte [edx + 3], al
add edx, 6
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc ebx
jmp 0x586037
inc ebx
mov dword [esp + 0x10], ebx
mov dl, byte [ebx]
cmp dl, 0x3d
je 0x588cbf
cmp dl, 0x3e
je 0x588cbf
cmp dl, 0x3c
je case.0x5885ac.39
mov eax, dword [esp + 0x18]
mov dword [eax], 0x29
jmp 0x589fc7
mov edi, dword [esp + 0x18]
xor ecx, ecx
cmp dl, 0x3e
mov edx, 0x29
sete cl
mov dword [esp + 0x34], ecx
mov ebp, ecx
jmp 0x5895c4
cmp dword [esi + 8], ebp
je 0x589e46
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x90]
inc edi
add esi, 0xc
cmp edi, dword [eax + 0x30]
jl 0x588b66
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x30]
cmp edi, eax
jl 0x588d9f
mov ecx, dword [esi + 0x38]
cmp eax, ecx
jl 0x588d6a
lea edi, [ecx + ecx]
lea eax, [edi + edi*2]
shl eax, 2
push eax
call dword [0x8a3924]
mov esi, eax
add esp, 4
test esi, esi
je 0x589e59
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [ebx + 0x28]
push esi
call fcn.0059ce60
add esp, 0xc
cmp dword [ebx + 0x38], 0x14
jle 0x588d5f
push dword [ebx + 0x28]
call dword [0x8a3928]
add esp, 4
mov dword [ebx + 0x28], esi
mov esi, ebx
mov eax, dword [esi + 0x30]
mov dword [esi + 0x38], edi
mov edx, dword [esp + 0x78]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x28]
mov dword [eax + ecx*4], edx
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x90]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x28]
mov dword [eax + ecx*4 + 8], ebp
inc dword [esi + 0x30]
mov ebx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x10], ebx
inc dword [esi + 0x40]
mov ebp, 2
mov eax, dword [esi + 0x40]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
shr eax, 8
mov byte [edx + 3], al
mov al, byte [esi + 0x40]
mov byte [edx + 4], al
mov ebx, dword [esp + 0x10]
jmp 0x589172
mov edi, dword [esp + 0x18]
mov ebp, 1
mov edx, 0x29
mov dword [esp + 0x34], ebp
jmp 0x5895c4
inc ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x18]
mov ebp, esi
mov dword [esp + 0x3c], 0x29
jmp 0x588f9d
mov ecx, dword [esp + 0x48]
test ecx, 0x1000
je 0x588da4
mov ecx, 0x83
mov dword [esp + 0x1c], ecx
jmp 0x58916e
mov edi, dword [esp + 0x18]
lea eax, [esp + 0xc4]
push 0
push dword [esp + 0x4c]
mov dword [esp + 0x9c], ebx
push dword [ebp + 0x40]
push edi
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00584b00
add esp, 0x18
mov ebx, eax
cmp dword [edi], 0
jne 0x586928
test ebx, ebx
jne 0x588e8c
cmp dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
je 0x588e80
cmp eax, 0x7f
jbe 0x588e80
lea ecx, [esp + 0x100]
push ecx
push eax
call fcn.0059af30
mov ebx, dword [esp + 0x1c]
add esp, 8
mov esi, eax
mov dword [esp + 0x38], ebx
jmp 0x5873c7
mov byte [esp + 0x100], al
jmp 0x5873af
cmp ebx, 0x1a
jne 0x588ec5
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 1], 0x5c
jne 0x588eb2
cmp byte [ebx + 2], 0x45
jne 0x588eb2
mov edx, dword [esp + 0x14]
add ebx, 2
mov esi, dword [esp + 0x20]
inc ebx
jmp 0x586037
mov edx, dword [esp + 0x14]
mov esi, 1
mov dword [esp + 0x20], esi
inc ebx
jmp 0x586037
cmp ebx, 0x19
je 0x589aa3
mov ecx, dword [esp + 0x40]
cmp ecx, 0xfffffffe
jne 0x588ee9
lea eax, [ebx - 6]
cmp eax, 0x10
mov eax, 0xffffffff
cmovbe ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x5c], eax
cmp ebx, 0x1b
jne 0x58956b
mov ebx, dword [esp + 0x10]
mov ecx, 0x27
mov eax, dword [ebp + 0x20]
inc ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x64], eax
mov eax, 0x3e
cmp byte [ebx], 0x3c
cmove ecx, eax
mov al, byte [ebx + 1]
mov dword [esp + 0x3c], ecx
cmp al, 0x2b
je 0x588f60
cmp al, 0x2d
je 0x588f60
cmp al, 0x30
jb 0x588f4e
cmp al, 0x39
jbe 0x588f60
mov edx, dword [esp + 0x3c]
mov ebp, 1
mov dword [esp + 0x34], ebp
jmp 0x5895c0
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x30
jb 0x588f7c
nop word [eax + eax]
cmp al, 0x39
ja 0x588f7c
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x588f70
mov eax, dword [esp + 0x3c]
cmp byte [ecx], al
je 0x588f98
mov edx, dword [esp + 0x14]
inc ebx
mov esi, dword [esp + 0x20]
mov dword [edi], 0x39
jmp 0x586037
inc ebx
mov dword [esp + 0x10], ebx
mov dl, byte [ebx]
cmp dl, 0x2b
jne 0x58902d
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x589e7b
cmp al, 0x39
ja 0x589e7b
mov al, byte [ebx]
xor ecx, ecx
mov dword [esp + 0x54], ecx
cmp al, 0x30
jb 0x588fef
nop dword [eax + eax]
cmp al, 0x39
ja 0x588feb
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0x10], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x588fd0
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x3c]
cmp byte [ebx], al
jne 0x589ee5
cmp dl, 0x2d
jne 0x589470
test ecx, ecx
je 0x589eda
mov edx, dword [ebp + 0x40]
sub edx, ecx
inc edx
mov dword [esp + 0x54], edx
test edx, edx
jg 0x589488
mov eax, dword [esp + 0x18]
mov dword [eax], 0xf
jmp 0x589fc7
cmp dl, 0x2d
jne 0x588fbf
mov al, byte [ebx + 1]
sub al, 0x30
cmp al, 9
ja 0x589045
inc ebx
mov dword [esp + 0x10], ebx
jmp 0x588fbf
mov esi, dword [esp + 0x24]
xor eax, eax
lea ecx, [esp + 0x50]
xor ebp, ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ebp
cmp dl, 0x29
je 0x5890cc
cmp dl, 0x3a
je 0x5890c4
movzx eax, dl
inc ebx
sub eax, 0x2d
mov dword [esp + 0x10], ebx
cmp eax, 0x4b
ja case.0x589082.46
movzx eax, byte [eax + 0x58a230]
jmp dword [eax*4 + 0x58a20c]
lea ecx, [esp + 0x3c]
jmp 0x5890bd
or dword [ecx], 0x80000
or dword [esi + 0x64], 0x400
jmp 0x5890bd
or dword [ecx], 1
jmp 0x5890bd
or dword [ecx], 2
jmp 0x5890bd
or dword [ecx], 4
jmp 0x5890bd
or dword [ecx], 8
jmp 0x5890bd
or dword [ecx], 0x200
jmp 0x5890bd
or dword [ecx], 0x40
mov dl, byte [ebx]
cmp dl, 0x29
jne 0x589062
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
or ebp, dword [esp + 0x48]
not eax
mov edx, dword [esp + 0x14]
and ebp, eax
cmp byte [ebx], 0x29
mov dword [esp + 0x80], ebp
jne 0x589150
mov eax, dword [esi + 0x14]
add eax, 3
cmp edx, eax
jne 0x589104
mov eax, dword [esp + 0x58]
test eax, eax
je 0x5890ff
cmp dword [eax], 6
jne 0x589104
mov dword [esi + 0x60], ebp
jmp 0x589129
mov eax, ebp
shr eax, 9
and eax, 1
mov dword [esp + 0xcc], eax
xor eax, 1
mov dword [esp + 0xd0], eax
mov eax, ebp
and eax, 1
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x38], 0
mov dword [eax], ebp
mov ebp, dword [esp + 0x24]
inc ebx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
jmp 0x586037
inc ebx
mov dword [esp + 0x3c], 0
mov ecx, 0x83
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ecx
xor ebp, ebp
jmp 0x589172
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
inc dword [eax + 0x58]
cmp dword [eax + 0x58], 0xfa
jg 0x589ecb
mov byte [edx], cl
mov ebx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0xa0], 0
mov edi, dword [ebx + 0x68]
mov esi, dword [ebx + 0x40]
cmp ecx, 0x7f
je 0x5891b4
cmp ecx, 0x80
je 0x5891b4
xor ecx, ecx
jmp 0x5891b9
mov ecx, 1
xor edx, edx
lea eax, [esp + 0xa0]
cmp dword [esp + 0x58], edx
cmove eax, edx
push eax
push ebx
push dword [esp + 0xe0]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xec]
push eax
xor eax, eax
cmp dword [esp + 0x38], 0x87
sete al
add eax, dword [esp + 0x198]
push eax
push ebp
push dword [esp + 0x60]
lea eax, [esp + 0x38]
push ecx
push dword [esp + 0x44]
push eax
lea eax, [esp + 0x94]
push eax
push dword [esp + 0xb8]
call fcn.0058a280
add esp, 0x3c
test eax, eax
je 0x586928
dec dword [ebx + 0x58]
mov ebp, dword [esp + 0x1c]
cmp ebp, 0x81
jne 0x5892cd
cmp dword [ebx + 0x40], esi
ja 0x589254
mov eax, dword [esp + 0x14]
mov byte [eax], 0x82
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x10]
cmp byte [ebx], 0x29
jne 0x589ebc
mov edx, dword [esp + 0x58]
test edx, edx
je 0x589358
mov esi, dword [esp + 0xa0]
mov ecx, 0x7fffffeb
mov edx, dword [edx]
sub ecx, edx
mov edi, dword [esp + 0x18]
lea eax, [esi - 6]
cmp ecx, eax
jl 0x589fac
mov ecx, dword [esp + 0x58]
lea eax, [esi - 6]
mov ebp, dword [esp + 0x24]
add eax, edx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov dword [ecx], eax
mov dword [edx + 1], 0x780300
mov byte [edx + 5], 3
add edx, 6
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc ebx
jmp 0x586037
cmp ebp, 0x80
ja 0x5892dd
dec dword [ebx + 0x5c]
jmp 0x589254
cmp ebp, 0x87
jne 0x589254
cmp dword [esp + 0x58], 0
jne 0x589254
mov ebx, dword [esp + 0x14]
xor esi, esi
mov edx, ebx
nop dword [eax]
movzx ecx, byte [edx + 1]
inc esi
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
jne 0x589300
cmp byte [ebx + 3], 0x91
jne 0x58932e
cmp esi, 1
jg 0x589e96
mov ebp, 0x91
jmp 0x589254
cmp esi, 2
jg 0x589ea9
cmp esi, 1
jne 0x589254
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xac], ecx
jmp 0x589262
mov edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
cmp ebp, 0x91
je 0x58913e
mov esi, dword [esp + 0x74]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x8c], esi
mov dword [esp + 0xb8], 0
cmp ebp, 0x81
jb 0x58943e
cmp esi, 0xfffffffe
jne 0x5893f4
test ecx, ecx
js 0x5893df
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x40], ecx
mov dword [esp + 0xb8], 1
mov dword [esp + 0x8c], 0xffffffff
jmp 0x589415
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x8c], 0xffffffff
jmp 0x589415
test ecx, ecx
js 0x589415
test eax, eax
jns 0x58941d
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc8], eax
mov eax, ecx
or eax, edi
mov dword [esp + 0xa4], eax
test eax, eax
js 0x58913e
mov ecx, dword [esp + 0xc8]
inc ebx
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
jmp 0x586037
cmp ebp, 0x7d
jne 0x58913e
test eax, eax
js 0x58913e
mov ecx, dword [esp + 0xc8]
inc ebx
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
jmp 0x586037
cmp dl, 0x2b
jne 0x589484
test ecx, ecx
je 0x589eda
add ecx, dword [ebp + 0x40]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x54]
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x14]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x38], ecx
jne 0x58951e
mov edi, dword [esp + 0x4c]
mov byte [ecx], 0
test edx, edx
je 0x5894bc
push edx
push edi
push dword [ebp + 0x14]
call fcn.00583c30
mov edx, dword [esp + 0x60]
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x58976d
cmp edx, dword [ebp + 0x44]
jg 0x589f28
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
add eax, 0xffffff9c
add eax, dword [ebp + 0x3c]
add ebx, edx
cmp dword [ebp + 0x20], eax
jb 0x5894f7
push ebp
call fcn.0058ab80
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x586928
mov edx, dword [esp + 0x14]
mov ecx, edx
sub ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x20]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [ebp + 0x14]
mov eax, dword [ebp + 0x20]
inc cl
mov byte [eax + 1], cl
add dword [ebp + 0x20], 2
mov ecx, dword [esp + 0x14]
mov byte [ecx], 0x75
mov eax, ebx
sub eax, dword [ebp + 0x14]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [ebp + 0x14]
mov byte [ecx + 2], bl
add ecx, 3
cmp dword [esp + 0x40], 0xfffffffe
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb8], 0
jne 0x589cf5
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], 0xffffffff
jmp 0x586037
cmp ebx, 0x1c
jne 0x5898f6
mov ebx, dword [esp + 0x10]
mov al, byte [ebx + 1]
cmp al, 0x3c
je 0x58959b
cmp al, 0x27
je 0x58959b
cmp al, 0x7b
je 0x58959b
mov edx, dword [esp + 0x14]
inc ebx
mov esi, dword [esp + 0x20]
mov dword [edi], 0x45
jmp 0x586037
inc ebx
xor ebp, ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x34], ebp
mov al, byte [ebx]
cmp al, 0x3c
jne 0x5895b1
lea edx, [ebp + 0x3e]
jmp 0x5895c0
cmp al, 0x27
mov edx, 0x7d
mov eax, 0x27
cmove edx, eax
mov esi, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x78], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x5895db
cmp al, 0x39
jbe 0x589ef0
mov ecx, dword [esi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x5895f5
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x5895e7
mov ecx, dword [esp + 0x78]
mov eax, ebx
sub eax, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x90], eax
je 0x589684
test eax, eax
je 0x589f1d
cmp byte [ebx], dl
jne 0x589f0e
cmp eax, 0x20
jg 0x589eff
mov ebx, dword [esp + 0x24]
xor edi, edi
mov esi, dword [esi + 0x28]
cmp edi, dword [ebx + 0x30]
jge 0x589668
mov ebp, eax
cmp ebp, dword [esi + 4]
jne 0x589651
push ebp
push dword [esi]
push ecx
call fcn.005a47e0
add esp, 0xc
test eax, eax
je 0x58965a
mov ecx, dword [esp + 0x78]
inc edi
add esi, 0xc
cmp edi, dword [ebx + 0x30]
jl 0x589638
mov ebp, dword [esp + 0x34]
cmp edi, dword [ebx + 0x30]
jge 0x589668
mov edx, dword [esi + 8]
jmp 0x58966a
xor edx, edx
mov dword [esp + 0x54], edx
test ebp, ebp
jne 0x589675
inc dword [ebx + 0x54]
mov esi, dword [ebx + 0x30]
mov ecx, dword [esp + 0x88]
jmp 0x5896f8
mov ecx, dword [esi + 0x2c]
xor edi, edi
mov dword [esp + 0x88], ecx
cmp dword [esi + 0x30], edi
jle 0x5896dd
mov ebp, dword [esp + 0x90]
mov ebx, ecx
nop
push ebp
lea eax, [ebx + 2]
push eax
push dword [esp + 0x80]
call fcn.005a47e0
add esp, 0xc
test eax, eax
jne 0x5896be
cmp byte [ebx + ebp + 2], al
je 0x5896c7
add ebx, dword [esi + 0x34]
inc edi
cmp edi, dword [esi + 0x30]
jl 0x5896a0
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov esi, dword [esi + 0x30]
cmp edi, esi
jge 0x58901e
movzx eax, byte [ecx]
movzx edx, byte [ecx + 1]
shl eax, 8
or edx, eax
mov dword [esp + 0x54], edx
test ebp, ebp
mov eax, esi
mov ebp, dword [esp + 0x24]
jne 0x589488
cmp dword [esp + 0x58], 0
jne 0x5898e0
cmp dword [ebp + 0x78], 0
je 0x5898e0
mov edx, dword [ebp + 0x34]
mov ebx, 1
mov dword [esp + 0xb0], edi
add edx, ecx
inc edi
mov dword [esp + 0x3c], edx
cmp edi, eax
jge 0x5898e0
lea ebp, [ecx + 2]
nop dword [eax]
lea ecx, [edx + 2]
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5897d9
test dl, dl
je 0x589769
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5897d9
add eax, 2
add ecx, 2
test dl, dl
jne 0x589745
xor eax, eax
jmp 0x5897de
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x58951a
cmp dword [esp + 0x17c], ecx
jg 0x58951a
mov eax, dword [esp + 0xd8]
mov esi, eax
test eax, eax
je 0x5897c6
nop word [eax + eax]
mov eax, dword [esi + 4]
cmp eax, ebx
jb 0x5897c6
push 0
push ebp
push edi
push dword [esp + 0x20]
push eax
call fcn.0058a710
add esp, 0x14
test eax, eax
je 0x58951a
mov esi, dword [esi]
test esi, esi
jne 0x5897a0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x28
jmp 0x589fc7
sbb eax, eax
or eax, 1
mov edx, dword [esp + 0x3c]
test eax, eax
jne 0x5897fb
mov eax, dword [esp + 0x24]
inc edi
inc ebx
add edx, dword [eax + 0x34]
mov dword [esp + 0x3c], edx
cmp edi, esi
jl 0x589740
mov ebp, dword [esp + 0x24]
cmp ebx, 1
jle 0x5898e0
mov eax, dword [esp + 0x40]
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
cmove eax, ecx
mov ecx, dword [esp + 0x14]
test byte [esp + 0x48], 1
mov dword [esp + 0x40], eax
setne al
mov dword [esp + 0x38], ecx
add al, 0x73
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xb0]
mov eax, ecx
shr eax, 8
mov byte [esi + 1], cl
mov ecx, esi
mov byte [esi], al
mov eax, ebx
mov esi, dword [esp + 0x88]
sar eax, 8
mov byte [ecx + 2], al
mov byte [ecx + 3], bl
add ecx, 4
mov dword [esp + 0x14], ecx
cmp esi, edx
jae 0x5898c2
mov edi, 1
nop dword [eax]
movzx eax, byte [esi]
movzx ebx, byte [esi + 1]
shl eax, 8
or ebx, eax
mov eax, edi
mov ecx, ebx
mov dword [esp + 0x54], ebx
shl eax, cl
cmp ebx, 0x20
cmovae eax, edi
or dword [ebp + 0x50], eax
cmp ebx, dword [ebp + 0x4c]
jle 0x589897
mov dword [ebp + 0x4c], ebx
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x5898b4
nop
movzx eax, word [ecx + 4]
cmp eax, ebx
je 0x5898b0
mov ecx, dword [ecx]
test ecx, ecx
jne 0x5898a0
jmp 0x5898b4
mov word [ecx + 6], di
add esi, dword [ebp + 0x34]
cmp esi, edx
jb 0x589870
mov dword [esp + 0x88], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc ebx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x78], eax
jmp 0x586037
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x78], eax
jmp 0x589904
test ebx, ebx
jns 0x589996
neg ebx
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x14]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x38], edx
cmove ecx, eax
test byte [esp + 0x48], 1
mov dword [esp + 0x40], ecx
setne al
add al, 0x71
mov byte [edx], al
mov eax, ebx
sar eax, 8
mov byte [edx + 1], al
mov byte [edx + 2], bl
add edx, 3
mov dword [esp + 0x14], edx
cmp ebx, 0x20
jge 0x58994b
mov esi, 1
mov ecx, ebx
mov eax, esi
shl eax, cl
jmp 0x589952
mov eax, 1
mov esi, eax
or dword [ebp + 0x50], eax
cmp ebx, dword [ebp + 0x4c]
jle 0x58995d
mov dword [ebp + 0x4c], ebx
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x589cf5
movzx eax, word [ecx + 4]
cmp eax, ebx
je 0x589984
mov ecx, dword [ecx]
test ecx, ecx
jne 0x589968
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
inc ebx
jmp 0x586037
mov word [ecx + 6], si
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
inc ebx
jmp 0x586037
cmp ebx, 0xf
je 0x589a2a
cmp ebx, 0x10
je 0x589a2a
cmp ebx, 5
je 0x5899b7
cmp ebx, 4
je 0x5899b7
cmp ebx, 1
jne 0x5899c4
cmp dword [ebp + 0x48], 0
jne 0x5899c4
mov dword [ebp + 0x48], 1
lea ecx, [ebx - 0x1d]
cmp ecx, 5
ja 0x5899eb
mov eax, dword [esp + 0x10]
mov ebx, dword [ecx*4 + 0x8a3898]
inc eax
mov edx, dword [esp + 0x14]
dec ebx
mov esi, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x7c], eax
jmp 0x586037
mov ecx, dword [esp + 0x14]
lea eax, [ebx - 6]
xor edi, edi
cmp eax, 0x10
cmovbe edi, ecx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x38], edi
jne 0x589a0f
cmp ebx, 0xe
jne 0x589a0f
mov ebx, 0xd
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov byte [ecx], bl
inc ecx
mov ebx, dword [esp + 0x10]
mov edx, ecx
mov dword [esp + 0x14], ecx
inc ebx
jmp 0x586037
push edi
lea eax, [esp + 0x40]
mov dword [esp + 0x54], 0
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0x44], 0
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0058b770
add esp, 0x14
test eax, eax
je 0x586928
mov ecx, dword [esp + 0x14]
xor eax, eax
mov esi, dword [esp + 0x20]
cmp ebx, 0x10
mov dword [esp + 0x38], ecx
sete al
cmp eax, dword [esp + 0xe8]
lea edx, [ecx + 3]
mov dword [esp + 0x14], edx
setne al
add al, 0xf
mov byte [ecx], al
mov al, byte [esp + 0x50]
mov byte [ecx + 1], al
mov al, byte [esp + 0x3c]
mov byte [ecx + 2], al
mov ebx, dword [esp + 0x10]
inc ebx
jmp 0x586037
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc ebx
mov esi, dword [esp + 0x20]
jmp 0x586037
movzx ecx, byte [esp + 0x101]
movzx eax, byte [esp + 0x102]
and ecx, 0x3f
test dl, 0x10
jne 0x589ada
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x589b5a
and eax, 0x3f
test dl, 8
jne 0x589af9
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x103]
jmp 0x589b5a
test dl, 4
jne 0x589b25
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x103]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x104]
jmp 0x589b5a
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x103]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x104]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x105]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x589b6b
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x78cc78]
shl eax, 7
and edx, 0x8000007f
jns 0x589b85
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x78ee78]
mov cl, byte [eax*8 + 0x78b8e3]
test cl, cl
je 0x589bdd
cmp dword [esp + 0x40], 0xfffffffe
lea edx, [ebx + 3]
mov ebp, dword [esp + 0x24]
mov word [ebx], 0x910
mov byte [ebx + 2], cl
mov dword [esp + 0x14], edx
jne 0x589cf5
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x8c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
jmp 0x586037
test byte [esp + 0x48], 1
mov edx, dword [esp + 0x14]
setne al
add al, 0x1d
xor ecx, ecx
mov byte [edx], al
inc edx
mov dword [esp + 0x14], edx
test esi, esi
je 0x589c13
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x100]
inc ecx
mov byte [edx], al
inc edx
cmp ecx, esi
jb 0x589c00
mov dword [esp + 0x14], edx
mov al, byte [esp + 0x100]
cmp al, 0xd
je 0x589c22
cmp al, 0xa
jne 0x589c2f
mov ebp, dword [esp + 0x24]
or dword [ebp + 0x64], 0x800
jmp 0x589c33
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
cmp ecx, 0xfffffffe
jne 0x589cab
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x8c], 0xffffffff
mov dword [esp + 0x5c], ecx
cmp esi, 1
je 0x589c8c
cmp dword [esp + 0xa8], 0
je 0x589c8c
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
jmp 0x586037
movzx eax, al
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x40], eax
cmp esi, 1
je 0x589cf5
mov eax, dword [ebp + 0x68]
jmp 0x589ce9
mov eax, dword [esp + 0x84]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], eax
cmp esi, 1
je 0x589cdf
cmp dword [esp + 0xa8], 0
jne 0x589cf5
mov eax, dword [ebp + 0x68]
or eax, dword [esp + 0xa8]
movzx ecx, byte [edx - 1]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], ecx
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x18]
jmp 0x586037
mov eax, dword [esp + 0x18]
mov dword [eax], 0x1f
jmp 0x589fc7
mov dword [ecx], 7
jmp 0x589fc7
mov ebx, dword [esp + 0x10]
mov dword [ecx], 0x47
jmp 0x589fc7
mov ebx, dword [esp + 0x10]
mov dword [edi], 0x53
jmp 0x589fc7
mov dword [edi], 8
jmp 0x589fc7
cmp byte [ebx + 1], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 5
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 4
jmp 0x589fc7
mov dword [edx], 9
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x4b
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x42
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x3b
jmp 0x589fc7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [eax], 0x3c
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x1c
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x23
jmp 0x589fc7
mov eax, dword [esp + 0x18]
dec ebx
mov dword [eax], 0x1a
jmp 0x589fc7
mov eax, dword [esp + 0x18]
inc ebx
mov dword [eax], 0x18
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x26
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x27
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x2b
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x41
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x15
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x31
jmp 0x589fc7
mov dword [edi], 0x3f
jmp 0x589fc7
mov eax, dword [esp + 0x18]
dec ebx
mov dword [eax], 0xc
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x36
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x1b
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0xe
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x52
jmp 0x589fc7
mov dword [edi], 0x3a
jmp 0x589fc7
mov dword [edi], 0x1d
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x54
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x30
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov dword [eax], 0x2a
jmp 0x589fc7
mov dword [edi], 0x3e
jmp 0x589fc7
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0xf
jmp 0x589fc7
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x58]
mov dword [edx], eax
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0x40]
mov dword [edx], eax
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x74]
mov dword [edx], eax
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x6c]
mov dword [edx], eax
mov eax, dword [esp + 0xfc]
mov dword [eax], ecx
mov eax, dword [esp + 0xdc]
mov dword [eax], ebx
test esi, esi
je 0x589fba
mov edx, dword [esp + 0x14]
mov edi, 0x7fffffeb
mov ecx, dword [esi]
mov eax, edx
mov ebp, dword [esp + 0xbc]
sub edi, ecx
sub eax, ebp
cmp edi, eax
jge 0x589fb4
mov edi, dword [esp + 0x18]
mov dword [edi], 0x14
jmp 0x589fc7
sub ecx, ebp
add ecx, edx
mov dword [esi], ecx
mov eax, 1
jmp 0x589fd2
mov dword [edi], 0x34
mov eax, dword [esp + 0xdc]
mov dword [eax], ebx
xor eax, eax
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0059bb21
add esp, 0x144
ret