Function at 0x59e630
Capabilities:
Contain obfuscated stackstrings
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb8
mov ebx, edx
mov esi, ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x59e673
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x8c], edx
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x3c], ecx
jmp 0x59e693
mov edi, 0x5a8670
mov dword [esp + 0x7c], 0x5a8680
mov dword [esp + 0x8c], 0x5a86a0
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xd8]
test ecx, ecx
je 0x59e6b7
mov ebp, ecx
cmp dword [esp + 0xd4], 0
je 0x59e6c8
jmp 0x59e6d3
lea ebp, [esp + 0x9c]
cmp dword [esp + 0xd4], 0
jne 0x59e6d3
lea ecx, [esp + 0xb4]
mov dword [esp + 0x6c], ecx
test esi, esi
je 0x5a73dc
mov ecx, dword [esi]
mov dword [esp + 0x58], esi
mov eax, dword [esi + 4]
mov edx, ecx
not edx
test dl, 6
jne 0x5a201a
mov edx, ecx
and edx, 0xffffff00
movzx esi, al
or esi, edx
je 0x5a201a
mov ecx, dword [esp + 0xcc]
test cl, 0x41
je 0x5a20ad
test cl, 2
jne 0x5a7886
test cl, 4
jne 0x5a78b4
mov esi, 0x6029d8
test ecx, 0x40000000
je 0x59e738
mov esi, 0x6030d8
mov edx, 4
and ecx, 0x40
jne 0x5a78aa
mov dword [esp + 0x38], edx
shl ebx, 5
add ebx, 0x47
and ebx, 0xffffffe0
push ebx
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x58]
mov ebp, dword [ebx]
mov edi, dword [ebx + 4]
mov edx, ebp
and edx, 7
cmp edx, 7
sete cl
shld edi, ebp, 0x18
shl edi, cl
mov dword [esp], edi
mov edi, dword [esp + 0x20]
lea ebp, [eax + edi]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x60], ecx
shl cl, 5
or cl, 0x5b
mov byte [eax], cl
mov byte [eax + 1], 0xa
mov ecx, dword [ebx + 8]
cmp edx, 7
jne 0x59e7ac
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x40], eax
mov ebp, eax
add ebp, 2
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x70]
mov eax, 1
mov dword [esp + 0xc], esi
jmp 0x59e7ec
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff8
add edi, 1
add ebp, 2
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x10]
mov eax, edi
mov edi, edx
mov edx, eax
movzx eax, byte [esp + 0x60]
mov dword [esp + 0x24], eax
lea eax, [edx*4 + 0x20]
mov dword [esp + 0x34], eax
mov eax, edx
and eax, 7
mov dword [esp + 0x44], eax
mov eax, dword [esp]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x20]
lea ecx, [edx*4 + 0x10]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x18], edx
lea ecx, [edx - 1]
mov dword [esp + 0x50], ecx
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edx]
mov ebx, ecx
and bl, 7
cmp bl, 4
mov dword [esp + 0x10], edx
je 0x59eaf0
mov edi, dword [edx + 4]
cmp bl, 5
jne 0x59ec30
shld edi, ecx, 0x18
mov ecx, edi
mov dword [esp], edi
cmp edi, 0x2aaaaaa6
ja 0x5a8461
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
test dword [esp + 0x24], edi
je 0x59e888
mov ecx, 0x10
mov ebx, dword [edx + 8]
mov edx, dword [esp]
lea edx, [edx + edx*2]
lea ecx, [ecx + edx*2]
lea edx, [ecx + ebp]
cmp edx, dword [esp + 0x1c]
jae 0x5a0f99
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x18], 0
je 0x59e93e
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x24]
jne 0x59e93e
mov eax, dword [esp + 0x18]
test al, 7
je 0x59e8e6
xor ecx, ecx
mov eax, dword [esp + 0x44]
mov dword [ebp], 0x20202020
add ebp, edx
add ecx, 1
cmp eax, ecx
jne 0x59e8d0
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp dword [esp + 0x50], 7
jb 0x59e93e
nop
nop
nop
mov dword [ebp], 0x20202020
mov dword [ebp + edx], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
add ebp, edx
add eax, 0xfffffff8
jne 0x59e8f0
cmp esi, 0x6029d8
mov eax, dword [esp + 0x10]
jne 0x59ee91
test byte [eax], 0x18
je 0x59ee91
mov byte [ebp], 0x22
add ebp, 1
mov edx, dword [esp]
cmp edx, 0x10
jb 0x59ea2d
lea eax, [edx - 0x10]
mov ecx, eax
shr ecx, 4
add ecx, 1
and ecx, 3
je 0x59e9b1
shl ecx, 4
xor edx, edx
nop
mov esi, dword [ebx + edx + 0xc]
mov dword [ebp + edx + 0xc], esi
mov esi, dword [ebx + edx + 8]
mov dword [ebp + edx + 8], esi
mov esi, dword [ebx + edx]
mov edi, dword [ebx + edx + 4]
mov dword [ebp + edx + 4], edi
mov dword [ebp + edx], esi
add edx, 0x10
cmp ecx, edx
jne 0x59e980
add ebp, edx
add ebx, edx
mov ecx, dword [esp]
sub ecx, edx
mov edx, ecx
cmp eax, 0x30
jb 0x59ea2d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebp + 8], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [ebp + 4], ecx
mov dword [ebp], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp + 0x18], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp + 0x2c], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp + 0x28], eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x20], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x34]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], ecx
mov eax, dword [ebx + 0x38]
mov dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp + 0x3c], eax
add ebp, 0x40
add ebx, 0x40
add edx, 0xffffffc0
cmp edx, 0xf
ja 0x59e9c0
cmp edx, 4
jb 0x59eaad
lea eax, [edx - 4]
mov ecx, eax
shr ecx, 2
add ecx, 1
and ecx, 7
je 0x59ea66
mov edi, edx
shl ecx, 2
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [ebx + edx]
mov dword [ebp + edx], esi
add edx, 4
cmp ecx, edx
jne 0x59ea50
add ebp, edx
add ebx, edx
sub edi, edx
mov edx, edi
cmp eax, 0x1c
jb 0x59eaad
nop
nop
nop
nop
nop
mov eax, dword [ebx]
mov dword [ebp], eax
mov eax, dword [ebx + 4]
mov dword [ebp + 4], eax
mov eax, dword [ebx + 8]
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp + 0x18], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp + 0x1c], eax
add ebp, 0x20
add ebx, 0x20
add edx, 0xffffffe0
cmp edx, 3
ja 0x59ea70
test edx, edx
je case.default.0x59f30f
lea esi, [edx - 1]
mov edi, edx
and edx, 7
je 0x59f8b3
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx + eax]
mov byte [ebp + eax], cl
add eax, 1
cmp edx, eax
jne 0x59ead0
add ebp, eax
add ebx, eax
mov edx, edi
sub edx, eax
mov eax, ebp
jmp 0x59f8b5
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
test dword [esp + 0x14], esi
je 0x59eb03
mov ecx, 0x20
lea edx, [ecx + ebp]
cmp edx, dword [esp + 0x1c]
jae 0x5a0f1c
mov edi, eax
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], edi
je 0x59ebae
mov eax, dword [esp + 0x14]
and eax, esi
jne 0x59ebae
mov eax, dword [esp + 0x44]
test eax, eax
je 0x59f75b
xor ecx, ecx
nop
mov dword [ebp], 0x20202020
add ebp, edx
add ecx, 1
cmp eax, ecx
jne 0x59eb40
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp dword [esp + 0x50], 7
jb 0x59ebae
nop
nop
nop
mov dword [ebp], 0x20202020
mov dword [ebp + edx], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
add ebp, edx
add eax, 0xfffffff8
jne 0x59eb60
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
mov edi, dword [edx + 0xc]
mov ebx, dword [edx + 8]
test cl, 0x10
jne 0x59edd8
mov esi, dword [edx + 4]
mov eax, ebx
neg eax
mov edx, 0
sbb edx, edi
shld esi, ecx, 0x1d
mov ecx, edi
shr ecx, 0x1f
mov byte [ebp], 0x2d
and ecx, esi
je 0x59ebe6
mov edi, edx
mov ebx, eax
add ebp, ecx
mov eax, 0x5f5e0ff
cmp eax, ebx
mov eax, 0
sbb eax, edi
jb 0x59f6f1
cmp ebx, 0x63
mov esi, dword [esp + 0xc]
ja 0x59f943
xor eax, eax
cmp ebx, 0xa
setb al
movzx ecx, word [eax + ebx*2 + 0x6035d8]
mov word [ebp], cx
sub ebp, eax
add ebp, 2
jmp 0x59f77e
mov dword [esp], edi
mov edx, ecx
and dl, 6
cmp dl, 6
jne 0x59ecbb
shld dword [esp], ecx, 0x18
mov edx, dword [esp + 0x38]
mov byte [esp + 4], bl
jne 0x5a1c90
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
test dword [esp + 0x24], edx
je 0x59ec63
mov ecx, 0x10
lea edx, [ecx + ebp]
cmp edx, dword [esp + 0x1c]
jae 0x5a1bbf
mov edi, eax
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x18], 0
je 0x5a163b
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x24]
jne 0x5a163b
test byte [esp + 0x18], 7
je 0x5a15e2
xor ecx, ecx
mov eax, dword [esp + 0x44]
mov dword [ebp], 0x20202020
add ebp, edx
add ecx, 1
cmp eax, ecx
jne 0x59eca0
mov eax, dword [esp + 0x18]
sub eax, ecx
jmp 0x5a15e6
cmp bl, 1
mov edx, dword [esp]
je 0x59f868
cmp bl, 2
je 0x59f78b
cmp bl, 3
jne 0x5a5878
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x24]
test dword [esp + 0x14], esi
je 0x59ecec
mov ecx, 0x10
lea edx, [ecx + ebp]
cmp edx, dword [esp + 0x1c]
jae 0x5a14d8
mov ebx, eax
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0x38]
je 0x59ed9e
mov eax, dword [esp + 0x14]
and eax, esi
jne 0x59ed9e
mov eax, dword [esp + 0x18]
test al, 7
je 0x59ed46
xor ecx, ecx
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp], 0x20202020
add ebp, edx
add ecx, 1
cmp eax, ecx
jne 0x59ed30
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp dword [esp + 0x50], 7
jb 0x59ed9e
nop
nop
nop
mov dword [ebp], 0x20202020
mov dword [ebp + edx], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
add ebp, edx
add eax, 0xfffffff8
jne 0x59ed50
xor eax, eax
mov ecx, dword [esp + 0x10]
test byte [ecx], 0x18
setne cl
mov edx, 0x65757274
mov esi, 0xa2c
jne 0x59edc0
mov edx, 0x736c6166
mov esi, 0xa2c65
mov dword [ebp + 4], esi
mov dword [ebp], edx
mov al, cl
neg eax
add ebp, eax
add ebp, 7
mov esi, dword [esp + 0xc]
jmp 0x59f8aa
mov ecx, ebx
mov eax, 0xffffffff
and ecx, eax
mov dword [esp + 8], ecx
mov ecx, edi
mov eax, 0xfffff
and ecx, eax
mov dword [esp + 4], ecx
mov ecx, edi
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x7ff
je 0x5a101e
mov esi, ebx
mov byte [ebp], 0x2d
mov ebx, edi
shr ebx, 0x1f
mov eax, 0xfffffffc
add eax, 3
mov edx, SysReAllocString
adc edx, 0
mov dword [esp + 0x88], ebx
add ebx, ebp
mov dword [esp + 0xa8], esi
and eax, esi
and edx, edi
or edx, eax
je 0x59f76f
mov dword [esp + 0x5c], ebx
test ecx, ecx
je 0x5a1053
mov edx, 0xffffffff
add edx, 1
mov edi, 0xfffff
adc edi, 0
mov esi, dword [esp + 8]
or edx, esi
or edi, dword [esp + 4]
lea eax, [ecx - 0x3ff]
cmp eax, 0x34
mov ebx, dword [esp + 0x20]
mov eax, edx
mov dword [esp], edx
ja 0x59fa2e
test edx, edx
jne 0x59fa19
bsf edx, edi
add edx, 0x20
jmp 0x59fa1c
mov ecx, dword [esp]
add ecx, ebx
mov byte [ebp], 0x22
mov dword [esp], ecx
mov edi, ecx
sub edi, ebx
cmp edi, 0x10
jl 0x59f000
xor ecx, ecx
nop
nop
nop
nop
lea eax, [ecx + ebp]
add eax, 1
lea edx, [ebx + ecx]
mov dword [esp + 4], edx
movzx edx, byte [ebx + ecx]
cmp byte [esi + edx], 0
jne 0x59f08e
mov dword [esp + 8], edi
movzx esi, byte [ebx + ecx + 1]
mov edi, dword [esp + 0xc]
cmp byte [edi + esi], 0
mov esi, dword [esp + 0xc]
jne 0x59f09a
movzx edx, byte [ebx + ecx + 2]
cmp byte [esi + edx], 0
jne 0x59f0af
movzx edx, byte [ebx + ecx + 3]
cmp byte [esi + edx], 0
jne 0x59f0c8
movzx edx, byte [ebx + ecx + 4]
cmp byte [esi + edx], 0
jne 0x59f0ea
movzx edx, byte [ebx + ecx + 5]
cmp byte [esi + edx], 0
jne 0x59f104
movzx edx, byte [ebx + ecx + 6]
cmp byte [esi + edx], 0
jne 0x59f126
movzx edx, byte [ebx + ecx + 7]
cmp byte [esi + edx], 0
jne 0x59f14a
movzx edx, byte [ebx + ecx + 8]
cmp byte [esi + edx], 0
jne 0x59f16c
movzx edx, byte [ebx + ecx + 9]
cmp byte [esi + edx], 0
jne 0x59f18e
movzx edx, byte [ebx + ecx + 0xa]
cmp byte [esi + edx], 0
jne 0x59f1b8
movzx edx, byte [ebx + ecx + 0xb]
cmp byte [esi + edx], 0
jne 0x59f1e4
movzx edx, byte [ebx + ecx + 0xc]
cmp byte [esi + edx], 0
jne 0x59f20e
movzx edx, byte [ebx + ecx + 0xd]
cmp byte [esi + edx], 0
jne 0x59f238
movzx edx, byte [ebx + ecx + 0xe]
cmp byte [esi + edx], 0
jne 0x59f267
movzx edx, byte [ebx + ecx + 0xf]
cmp byte [esi + edx], 0
jne 0x59f298
mov esi, dword [esp + 4]
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [eax + 4], esi
mov esi, dword [esp + 0xc]
mov dword [eax], edx
add ecx, 0x10
mov edi, dword [esp + 8]
add edi, 0xfffffff0
cmp edi, 0xf
jg 0x59eeb0
lea eax, [ecx + ebp]
add eax, 1
add ebx, ecx
mov ecx, dword [esp]
cmp edi, 4
jge 0x59f00a
jmp 0x59f059
add ebp, 1
mov eax, ebp
cmp edi, 4
jl 0x59f059
sub ecx, ebx
nop
nop
nop
nop
movzx edx, byte [ebx]
cmp byte [esi + edx], 0
jne 0x59f2c5
movzx esi, byte [ebx + 1]
mov edi, dword [esp + 0xc]
cmp byte [edi + esi], 0
mov esi, dword [esp + 0xc]
jne 0x59f0a2
movzx edx, byte [ebx + 2]
cmp byte [esi + edx], 0
jne 0x59f0b7
movzx edx, byte [ebx + 3]
cmp byte [esi + edx], 0
jne 0x59f0d0
mov edx, dword [ebx]
mov dword [eax], edx
add eax, 4
add ebx, 4
add ecx, 0xfffffffc
cmp ecx, 3
jg 0x59f010
mov ecx, ebx
mov edi, dword [esp]
cmp edi, ebx
jbe 0x59f912
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx]
cmp byte [esi + ecx], 0
jne 0x59f2c8
add ebx, 1
mov byte [eax], cl
add eax, 1
cmp edi, ebx
jne 0x59f070
jmp 0x59f912
mov edi, dword [esp]
mov ebx, dword [esp + 4]
jmp 0x59f2c8
lea eax, [ecx + ebp]
add eax, 1
add ebx, ecx
mov byte [eax], dl
add eax, 1
add ebx, 1
jmp 0x59f2c5
lea eax, [ecx + ebp]
add eax, 1
add ebx, ecx
movzx ecx, word [ebx]
mov word [eax], cx
add eax, 2
add ebx, 2
jmp 0x59f2c5
lea eax, [ecx + ebp]
add eax, 1
add ebx, ecx
mov edi, dword [esp]
mov cl, byte [ebx + 2]
mov byte [eax + 2], cl
movzx ecx, word [ebx]
mov word [eax], cx
add eax, 3
add ebx, 3
jmp 0x59f2c8
lea edx, [ebx + ecx]
add edx, 4
mov eax, dword [ebx + ecx]
mov ebx, edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 5
jmp 0x59f2c5
lea edx, [ebx + ecx]
add edx, 5
mov al, byte [ebx + ecx + 4]
mov byte [ebp + ecx + 5], al
mov eax, dword [ebx + ecx]
mov ebx, edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 6
jmp 0x59f2c5
lea edx, [ebx + ecx]
add edx, 6
movzx eax, word [ebx + ecx + 4]
mov word [ebp + ecx + 5], ax
mov eax, dword [ebx + ecx]
mov ebx, edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 7
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 7
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 3]
mov ebx, edi
mov dword [ebp + ecx + 4], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 8
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 8
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 9
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 9
mov al, byte [ebx + ecx + 8]
mov byte [ebp + ecx + 9], al
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0xa
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 0xa
movzx eax, word [ebx + ecx + 8]
mov word [ebp + ecx + 9], ax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0xb
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 0xb
mov eax, dword [ebx + ecx + 7]
mov dword [ebp + ecx + 8], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0xc
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 0xc
mov eax, dword [ebx + ecx + 8]
mov dword [ebp + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0xd
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 0xd
mov al, byte [ebx + ecx + 0xc]
mov byte [ebp + ecx + 0xd], al
mov eax, dword [ebx + ecx + 8]
mov dword [ebp + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0xe
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 0xe
movzx eax, word [ebx + ecx + 0xc]
mov word [ebp + ecx + 0xd], ax
mov eax, dword [ebx + ecx + 8]
mov dword [ebp + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0xf
jmp 0x59f2c5
lea edi, [ebx + ecx]
add edi, 0xf
mov eax, dword [ebx + ecx + 0xb]
mov dword [ebp + ecx + 0xc], eax
mov eax, dword [ebx + ecx + 8]
mov dword [ebp + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov ebx, edi
mov dword [ebp + ecx + 5], edx
mov dword [ebp + ecx + 1], eax
lea eax, [ecx + ebp]
add eax, 0x10
mov edi, dword [esp]
mov ebp, eax
jmp 0x59f2ec
mov ebx, edi
cmp byte [edi + 1], 0
je 0x59f403
movzx eax, word [ebx]
mov word [ebp], ax
add ebp, 2
add ebx, 2
mov esi, dword [esp + 0xc]
mov edi, dword [esp]
lea ecx, [ebx + 4]
cmp ecx, edi
ja 0x59f673
mov edi, ebx
movzx eax, byte [ebx]
movzx edx, al
movzx ebx, byte [esi + edx]
cmp bl, 0xc
ja case.default.0x59f30f
movzx esi, bl
jmp dword [esi*4 + 0x604aa4]
mov ecx, dword [esp + 0xcc]
test cl, 2
mov ebx, edi
je 0x59f403
jmp 0x59f453
push 1
lea eax, [esp + 0x6a]
push eax
push 1
mov ebx, edi
push edi
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_MultiByteToWideChar_1]
mov word [ebp], 0x755c
movzx eax, word [esp + 0x66]
movzx ecx, al
shr eax, 8
movzx eax, word [eax + eax + 0x6033d8]
mov word [ebp + 2], ax
movzx eax, word [ecx + ecx + 0x6033d8]
jmp 0x59f485
mov ebx, edi
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x59f403
mov ecx, eax
and ecx, 0x1e
je 0x59f403
mov word [ebp], ax
jmp 0x59f2df
mov ebx, edi
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x59f403
mov edx, eax
and edx, 0x3007
je 0x59f403
test al, 4
je 0x59f3c1
mov edx, eax
and edx, 0x3003
jne 0x59f403
mov dword [ebp], eax
add ebp, 4
mov ebx, ecx
jmp 0x59f2e5
cmp ecx, dword [esp]
ja 0x59f6b4
mov ebx, edi
mov ecx, dword [edi]
mov edx, ecx
and edx, 0xc0c0f0
mov eax, ecx
cmp edx, 0x8080e0
jne 0x59f403
mov edx, ecx
and edx, 0x200f
je 0x59f403
cmp edx, 0x200d
jne 0x59f622
mov ecx, dword [esp + 0xcc]
test cl, 0x20
je 0x5a213d
add ebx, 1
mov byte [ebp], al
add ebp, 1
jmp 0x59f2e5
mov ebx, edi
movzx ecx, word [edi]
movzx eax, byte [edi + 2]
mov esi, eax
shl esi, 0x10
or esi, ecx
and esi, 0xc0c0f0
cmp esi, 0x8080e0
jne 0x59f453
and ecx, 0x200f
je 0x59f453
cmp ecx, 0x200d
jne 0x59f630
mov eax, dword [esp + 0xcc]
test al, 0x20
je 0x5a213d
mov word [ebp], 0x755c
mov dword [ebp + 2], 0x44464646
jmp 0x59f489
mov dword [ebp], 0x3030755c
mov ebx, edi
movzx eax, byte [edi]
movzx eax, word [eax + eax + 0x6033d8]
mov word [ebp + 4], ax
add ebp, 6
add ebx, 1
jmp 0x59f2e5
movzx eax, word [edx + edx + str._________________b_t_n___f_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ebp], ax
add ebp, 2
mov ebx, edi
add ebx, 1
jmp 0x59f2e5
mov edx, dword [edi]
mov ebx, edx
and ebx, 0xc0c0c0f8
cmp ebx, 0x808080f0
mov ebx, edi
jne 0x59f453
mov esi, ebx
mov ebx, edx
and ebx, 0x3007
mov ebx, esi
je 0x59f453
test dl, 4
je 0x59f4e0
and edx, 0x3003
jne 0x59f453
and al, 7
movzx eax, al
shl eax, 0x12
movzx edx, byte [ebx + 1]
and edx, 0x3f
shl edx, 0xc
or edx, eax
movzx esi, byte [ebx + 2]
and esi, 0x3f
mov edi, esi
shl edi, 6
or edi, edx
movzx edx, byte [ebx + 3]
and edx, 0x3f
lea eax, [edi + edx]
add edx, edi
add edx, 0xffff0000
mov edi, edx
shr edi, 0xa
add edi, 0xd800
mov word [ebp], 0x755c
shr edi, 8
movzx edi, word [edi + edi + 0x6033d8]
mov word [ebp + 2], di
shr edx, 9
and edx, 0x1fe
movzx edx, word [edx + 0x6033d8]
mov word [ebp + 4], dx
mov word [ebp + 6], 0x755c
shr esi, 1
and esi, 6
movzx edx, word [esi + 0x603590]
mov word [ebp + 8], dx
movzx eax, al
movzx eax, word [eax + eax + 0x6033d8]
mov word [ebp + 0xa], ax
add ebp, 0xc
mov ebx, ecx
jmp 0x59f2e5
mov ebx, edi
movzx ecx, word [edi]
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x59f453
and ecx, 0x1e
je 0x59f453
and al, 0x1f
movzx ecx, al
mov eax, ecx
shl eax, 6
movzx edx, byte [ebx + 1]
and edx, 0x3f
mov word [ebp], 0x755c
shr ecx, 2
movzx ecx, word [ecx + ecx + 0x6033d8]
mov word [ebp + 2], cx
movzx eax, al
or eax, edx
movzx eax, word [eax + eax + 0x6033d8]
jmp 0x59f616
mov ebx, edi
cmp byte [edi + 1], 0
je 0x59f453
push 1
lea eax, [esp + 0x6a]
push eax
push 2
push ebx
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_MultiByteToWideChar_1]
mov word [ebp], 0x755c
movzx eax, word [esp + 0x66]
movzx ecx, al
shr eax, 8
movzx eax, word [eax + eax + 0x6033d8]
mov word [ebp + 2], ax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [ebp + 4], ax
add ebp, 6
jmp 0x59f2e2
mov dword [ebp], ecx
add ebp, 3
add ebx, 3
jmp 0x59f2e5
shl edx, 0xc
movzx ecx, byte [ebx + 1]
and ecx, 0x3f
shl ecx, 6
and eax, 0x3f
mov word [ebp], 0x755c
or edx, ecx
movzx edx, dh
movzx edx, word [edx + edx + 0x6033d8]
mov word [ebp + 2], dx
movzx ecx, cl
or ecx, eax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [ebp + 4], ax
add ebp, 6
add ebx, 3
jmp 0x59f2e5
sub edi, ebx
je 0x59f910
mov dword [esp + 4], edi
mov edi, ebx
movzx eax, byte [ebx]
movzx edx, al
movzx ebx, byte [esi + edx]
mov bh, 2
cmp bl, 0xa
je 0x59f6a2
cmp bl, 0xc
je 0x59f6a2
mov bh, bl
cmp bl, 0xb
jne 0x59f6a0
mov bh, 1
shr bh, 1
movzx esi, bh
cmp dword [esp + 4], esi
jge 0x59f303
jmp case.0x59f30f.1
mov ebx, edi
movzx edx, word [edi]
movzx ecx, byte [edi + 2]
shl ecx, 0x10
or ecx, edx
mov esi, ecx
and esi, 0xc0c0f0
mov eax, edx
cmp esi, 0x8080e0
je 0x59f3ef
jmp 0x59f403
add edi, 1
mov byte [ebp], al
mov ebx, edi
mov esi, dword [esp + 0xc]
mov ecx, dword [esp]
jmp 0x59ee9d
push 0
push 0x5f5e100
push edi
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, edx
mov edx, 0xfa0a1f00
mul edx
add eax, ebx
mov dword [esp], eax
mov eax, 0x6fc10000
cmp ebx, eax
mov eax, edi
mov edx, 0x2386f2
sbb eax, edx
jae 0x59f98f
cmp esi, 0x63
ja 0x59ffb4
xor eax, eax
cmp esi, 0xa
setb al
movzx ecx, word [eax + esi*2 + 0x6035d8]
mov word [ebp], cx
sub ebp, eax
add ebp, 2
mov ebx, dword [esp + 0x20]
jmp 0x5a09e1
mov eax, ebp
mov esi, dword [esp + 0xc]
jmp 0x59f912
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x50], 7
jae 0x59eb60
jmp 0x59ebae
mov dword [ebx], 0x302e30
add ebx, 3
mov ebp, ebx
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x5a0d43
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
test dword [esp + 0x24], edx
je 0x59f79e
mov ecx, 0x10
lea edx, [ecx + ebp]
cmp edx, dword [esp + 0x1c]
jae 0x5a145d
mov ebx, eax
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0x38]
je 0x59f84e
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x24]
jne 0x59f84e
mov eax, dword [esp + 0x18]
test al, 7
je 0x59f7f6
xor ecx, ecx
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp], 0x20202020
add ebp, edx
add ecx, 1
cmp eax, ecx
jne 0x59f7e0
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp dword [esp + 0x50], 7
jb 0x59f84e
nop
nop
nop
mov dword [ebp], 0x20202020
mov dword [ebp + edx], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
add ebp, edx
add eax, 0xfffffff8
jne 0x59f800
mov eax, 0x65757274
add eax, 0x6f702fa
mov ecx, 0xa2c
mov dword [ebp + 4], ecx
mov dword [ebp], eax
add ebp, 6
jmp 0x59f8aa
shld edx, ecx, 0x18
cmp edx, 0x2aaaaaa6
mov ecx, dword [esp + 0x10]
ja 0x5a8461
mov edi, dword [ecx + 8]
lea ecx, [edx + ebp]
add ecx, 3
cmp ecx, dword [esp + 0x1c]
jae 0x5a1553
mov ebx, eax
push edx
push edi
push ebp
mov edi, edx
call fcn.005c50c0
add esp, 0xc
mov word [ebp + edi], 0xa2c
add ebp, edi
add ebp, 2
mov edx, dword [esp + 0x10]
jmp 0x5a0d4c
mov edx, edi
cmp esi, 7
mov esi, dword [esp + 0xc]
jb 0x59f912
xor eax, eax
movzx ecx, byte [ebx + eax]
mov byte [ebp + eax], cl
movzx ecx, byte [ebx + eax + 1]
mov byte [ebp + eax + 1], cl
movzx ecx, byte [ebx + eax + 2]
mov byte [ebp + eax + 2], cl
movzx ecx, byte [ebx + eax + 3]
mov byte [ebp + eax + 3], cl
movzx ecx, byte [ebx + eax + 4]
mov byte [ebp + eax + 4], cl
movzx ecx, byte [ebx + eax + 5]
mov byte [ebp + eax + 5], cl
movzx ecx, byte [ebx + eax + 6]
mov byte [ebp + eax + 6], cl
movzx ecx, byte [ebx + eax + 7]
mov byte [ebp + eax + 7], cl
add eax, 8
cmp edx, eax
jne 0x59f8c0
add ebp, eax
mov eax, ebp
mov edx, dword [esp + 0x14]
not edx
mov byte [eax], 0x22
mov cl, 0x2c
test dword [esp + 0x24], edx
je 0x59f925
mov cl, 0x3a
mov byte [eax + 1], cl
mov cl, 0xa
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
je 0x59f936
mov cl, 0x20
mov byte [eax + 2], cl
add eax, 3
mov ebp, eax
jmp 0x5a0d4c
cmp ebx, 0x270f
ja 0x5a0004
imul eax, ebx, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, ebx
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ebx
mov ebx, dword [esp + 0x20]
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 2], ax
add ebp, 4
jmp 0x5a0d3f
push 0xe8
push 0xd4a51000
push edi
push ebx
call fcn.005c5870
mov ecx, eax
mov edi, edx
imul ebx, eax, 0xffffd8f0
add ebx, esi
cmp eax, 0xf423f
ja 0x5a006d
mov eax, ecx
mov edx, 0x68db9
mul edx
imul eax, edi, 0x68db9
add eax, edx
imul edx, eax, 0xffffd8f0
add edx, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, ecx, 0xffffff9c
add esi, edx
xor edx, edx
cmp eax, 0xa
setb dl
movzx eax, word [edx + eax*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, edx
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 4], ax
add ebp, 6
mov esi, 0x68db8bb
jmp 0x5a00f0
bsf edx, edx
mov eax, 0x433
sub eax, ecx
cmp eax, edx
mov edx, dword [esp]
jbe 0x59ff5f
or esi, dword [esp + 4]
sete dl
cmp ecx, 1
seta al
and al, dl
imul ebx, ecx, 0x4d105
mov dword [esp + 0x84], 0
mov edx, 0xfffdff5b
mov byte [esp + 0x30], al
test al, al
jne 0x59fa5d
xor edx, edx
mov eax, dword [esp]
lea esi, [eax*4 + 2]
mov dword [esp + 4], ebx
mov dword [esp + 0x80], edx
add ebx, edx
add ebx, 0xebc64801
sar ebx, 0x14
mov dword [esp + 0x48], ebx
imul ebx, ebx, 0xfffcad95
shr ebx, 0x10
add ecx, ebx
add cl, 0xce
mov ebx, esi
shl ebx, cl
shld edi, eax, 2
mov dword [esp + 0x28], 0
test cl, 0x20
jne 0x59faa8
mov dword [esp + 0x28], ebx
mov dword [esp + 8], ebx
mov ebx, edi
shld ebx, esi, cl
test cl, 0x20
jne 0x59faba
mov dword [esp + 8], ebx
mov esi, dword [esp]
lea esi, [esi*4]
mov edx, esi
shl edx, cl
mov ebx, 0
test cl, 0x20
jne 0x59fad4
mov ebx, edx
mov dword [esp + 0x90], ebx
mov ebx, edi
shld ebx, esi, cl
test cl, 0x20
jne 0x59fae7
mov edx, ebx
movzx eax, byte [esp + 0x30]
mov esi, dword [esp]
lea eax, [eax + esi*4]
add eax, 0xfffffffe
adc edi, 0xffffffff
mov esi, eax
shl esi, cl
mov ebx, 0
test cl, 0x20
jne 0x59fb08
mov ebx, esi
mov dword [esp + 0x2c], edx
shld edi, eax, cl
test cl, 0x20
mov edx, dword [esp + 4]
jne 0x59fb1a
mov esi, edi
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x48]
shl eax, 4
mov edi, 0x6014e8
sub edi, eax
mov ecx, 0x6014f0
sub ecx, eax
mov eax, dword [esp + 0x80]
add edx, eax
add edx, 0xef364801
xor eax, eax
cmp edx, 0x37fffff
seta al
add eax, dword [ecx]
mov ecx, dword [ecx + 4]
adc ecx, 0
mov esi, eax
mov dword [esp + 0x74], eax
mul ebx
mov dword [esp + 4], edx
mov eax, ecx
mov dword [esp + 0x68], ecx
mul ebx
mov dword [esp + 0x80], edx
mov dword [esp + 0x78], ebx
mov ebx, eax
mov eax, esi
mov esi, dword [esp + 0x30]
mul esi
mov dword [esp], edx
mov dword [esp + 0x54], eax
mov eax, ecx
mul esi
mov ecx, eax
mov esi, edx
add ebx, dword [esp + 4]
adc ecx, dword [esp + 0x80]
adc esi, 0
add ebx, dword [esp + 0x54]
adc ecx, dword [esp]
adc esi, 0
mov eax, dword [edi]
mov dword [esp], eax
mov ebx, dword [esp + 0x78]
mul ebx
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], edx
mov eax, dword [edi + 4]
mov dword [esp + 4], eax
mul ebx
mov dword [esp + 0x98], edx
mov edi, eax
mov eax, dword [esp]
mov ebx, dword [esp + 0x30]
mul ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 4]
mul ebx
add edi, dword [esp + 0x54]
adc eax, dword [esp + 0x98]
adc edx, 0
add edi, dword [esp + 0x94]
adc eax, dword [esp + 0x78]
adc edx, 0
mov ebx, dword [esp + 0x80]
add ebx, ecx
adc edi, esi
setb byte [esp + 0x30]
cmp ebx, ecx
mov ecx, edi
sbb ecx, esi
setb cl
or cl, byte [esp + 0x30]
movzx ecx, cl
add ecx, eax
mov dword [esp + 0x30], ecx
adc edx, 0
mov dword [esp + 0x80], edx
mov eax, 1
cmp eax, ebx
mov eax, 0
sbb eax, edi
setb byte [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov eax, ebx
mov ecx, dword [esp + 0x90]
mul ecx
mov dword [esp + 0x98], edx
mov esi, dword [esp + 0x68]
mov eax, esi
mul ecx
mov dword [esp + 0x94], edx
mov edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x2c]
mul ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0xac], eax
mov eax, esi
mul ebx
mov ebx, eax
movzx eax, byte [esp + 0x78]
or eax, dword [esp + 0x30]
mov dword [esp + 0x78], eax
add edi, dword [esp + 0x98]
adc ebx, dword [esp + 0x94]
adc edx, 0
add edi, dword [esp + 0xac]
adc ebx, dword [esp + 0x54]
adc edx, 0
mov dword [esp + 0x54], edx
mov edi, dword [esp]
mov eax, edi
mul ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x30], eax
mov esi, dword [esp + 4]
mov eax, esi
mul ecx
mov dword [esp + 0x94], edx
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x2c]
mul edi
mov dword [esp + 0x90], edx
mov dword [esp + 0xac], eax
mov eax, esi
mul edi
add ecx, dword [esp + 0x98]
adc eax, dword [esp + 0x94]
adc edx, 0
add ecx, dword [esp + 0xac]
adc eax, dword [esp + 0x90]
adc edx, 0
mov edi, edx
mov esi, dword [esp + 0x30]
add esi, ebx
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x54]
adc ecx, edx
setb byte [esp + 0x2c]
cmp esi, ebx
mov ebx, ecx
sbb ebx, edx
setb dh
or dh, byte [esp + 0x2c]
movzx esi, dh
add esi, eax
adc edi, 0
mov dword [esp + 0x2c], edi
mov eax, 1
cmp eax, dword [esp + 0x30]
mov eax, 0
sbb eax, ecx
setb byte [esp + 0x30]
mov ecx, dword [esp + 0x74]
mov eax, ecx
mov edi, dword [esp + 0x28]
mul edi
mov dword [esp + 0x54], edx
mov ebx, dword [esp + 0x68]
mov eax, ebx
mul edi
mov dword [esp + 0x98], edx
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 8]
mul ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov eax, ebx
mul ecx
mov ebx, eax
mov ecx, edx
movzx eax, byte [esp + 0x30]
mov dword [esp + 0x30], esi
or eax, esi
mov dword [esp + 0x74], eax
add edi, dword [esp + 0x54]
adc ebx, dword [esp + 0x98]
adc ecx, 0
add edi, dword [esp + 0x94]
adc ebx, dword [esp + 0x90]
adc ecx, 0
mov eax, dword [esp]
mov esi, dword [esp + 0x28]
mul esi
mov dword [esp + 0x90], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 4]
mul esi
mov dword [esp + 0x28], edx
mov esi, eax
mov eax, dword [esp]
mov edi, dword [esp + 8]
mul edi
mov dword [esp], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 4]
mul edi
add esi, dword [esp + 0x90]
adc eax, dword [esp + 0x28]
adc edx, 0
add esi, dword [esp + 0x54]
adc eax, dword [esp]
adc edx, 0
mov edi, dword [esp + 0x68]
add edi, ebx
adc esi, ecx
setb byte [esp]
cmp edi, ebx
mov ebx, esi
sbb ebx, ecx
setb cl
or cl, byte [esp]
movzx ecx, cl
add ecx, eax
adc edx, 0
mov eax, 1
cmp eax, edi
sbb dword [esp + 0x84], esi
setb al
movzx edi, al
or edi, ecx
mov ecx, edx
mov eax, dword [esp + 0xa8]
and eax, 1
add dword [esp + 0x78], eax
adc dword [esp + 0x80], 0
sub edi, eax
sbb ecx, 0
cmp dword [esp + 0x74], 0x28
mov eax, dword [esp + 0x2c]
sbb eax, 0
jb 0x59fed0
push 0
push 0x28
push dword [esp + 0x34]
push dword [esp + 0x3c]
mov esi, ecx
call fcn.005c5870
mov ecx, esi
mov esi, edx
mov dword [esp + 0x28], eax
mov edx, 0x28
mul edx
mov dword [esp], esi
lea ebx, [esi*8]
lea ebx, [ebx + ebx*4]
lea esi, [edx + ebx]
cmp eax, dword [esp + 0x78]
sbb esi, dword [esp + 0x80]
setb byte [esp + 8]
add eax, 0x28
adc ebx, edx
cmp edi, eax
mov edx, ecx
sbb edx, ebx
setae dl
xor dl, byte [esp + 8]
je 0x5a017c
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x30]
and eax, 0xfffffffc
mov ecx, eax
add ecx, 4
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x2c]
mov esi, ebx
adc esi, 0
lea ecx, [eax + 2]
mov edx, dword [esp + 0x74]
cmp ecx, edx
sbb ebx, ebx
mov ebx, 1
jb 0x59ff1a
xor edx, ecx
mov ecx, dword [esp + 0x2c]
xor ecx, ecx
or ecx, edx
sete cl
mov ebx, dword [esp + 0x30]
mov ch, bl
shr ch, 2
and ch, cl
movzx ebx, ch
mov ecx, dword [esp + 0x2c]
shrd dword [esp + 0x30], ecx, 2
mov edx, ecx
shr edx, 2
mov dword [esp], edx
cmp edi, dword [esp + 8]
sbb dword [esp + 4], esi
setae dl
cmp eax, dword [esp + 0x78]
sbb ecx, dword [esp + 0x80]
setb al
xor al, dl
jne 0x59ff4c
movzx ebx, dl
mov eax, dword [esp + 0x30]
add eax, ebx
mov ebx, eax
mov ecx, dword [esp]
adc ecx, 0
jmp 0x5a0197
mov ecx, eax
shrd edx, edi, cl
shr edi, cl
xor ecx, ecx
test al, 0x20
je 0x59ff70
mov edx, edi
xor edi, edi
mov ebp, dword [esp + 0x5c]
mov eax, 0x5f5e0ff
cmp eax, edx
sbb ecx, edi
jb 0x5a0686
cmp edx, 0x63
mov esi, dword [esp + 0xc]
mov ecx, edx
mov edx, dword [esp + 0x10]
ja 0x5a0835
xor eax, eax
cmp ecx, 0xa
setb al
movzx ecx, word [eax + ecx*2 + 0x6035d8]
mov word [ebp], cx
sub ebp, eax
add ebp, 2
jmp 0x5a0ec6
cmp esi, 0x270f
mov ebx, dword [esp + 0x20]
ja 0x5a06ca
imul eax, esi, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, esi
mov esi, ebx
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ebx
mov ebx, esi
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 2], ax
add ebp, 4
jmp 0x5a09e1
mov eax, ebx
cmp ebx, 0xf423f
ja 0x5a0733
mov ecx, 0x68db9
mul ecx
imul eax, edi, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, ebx
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 4], ax
add ebp, 6
jmp 0x59f77a
mov eax, ecx
mov edx, 0x68db8bb
mul edx
imul eax, edi, 0x68db8bb
add eax, edx
shr eax, 8
imul edx, eax, 0xffffd8f0
add edx, ecx
imul esi, eax, 0x147b
mov dword [esp + 4], esi
shr esi, 0x13
imul edi, edx, 0x147b
shr edi, 0x13
imul ecx, esi, 0xffffff9c
add ecx, eax
imul eax, edi, 0xffffff9c
add eax, edx
xor edx, edx
cmp dword [esp + 4], 0x500000
setb dl
movzx esi, word [edx + esi*2 + 0x6035d8]
mov word [ebp], si
sub ebp, edx
mov esi, 0x68db8bb
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [ebp + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [ebp + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [ebp + 6], ax
add ebp, 8
imul eax, ebx, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
add ecx, ebx
movzx eax, word [eax + eax + 0x6035d8]
mov word [ebp], ax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [ebp + 2], ax
mov ecx, dword [esp]
mov eax, ecx
mul esi
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, ecx, 0xffffff9c
add edi, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [ebp + 4], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebp + 6], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 8], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 0xa], ax
add ebp, 0xc
jmp 0x5a0d37
cmp edi, eax
sbb ecx, ebx
setae al
movzx eax, al
mov ebx, dword [esp + 0x28]
add ebx, eax
mov ecx, dword [esp]
adc ecx, 0
add dword [esp + 0x48], 1
mov eax, 0x6fc10000
cmp ebx, eax
mov eax, ecx
mov edx, 0x2386f2
sbb eax, edx
setb al
mov edx, 0xa4c67fff
add edx, 1
mov esi, 0x38d7e
adc esi, 0
cmp ebx, edx
mov edx, ecx
sbb edx, esi
movzx esi, al
setb al
movzx edi, al
lea eax, [edi + esi]
mov edx, dword [esp + 0x48]
sub edx, eax
lea eax, [edx + 0x11]
add edx, 0x16
cmp edx, 0x1a
mov dword [esp], eax
ja 0x5a0383
test eax, eax
jle 0x5a04e2
xor esi, 0x11
mov dword [esp + 0x2c], esi
neg edi
mov dword [esp + 0x28], edi
push 0
push 0x5f5e100
push ecx
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov dword [esp + 4], eax
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
add dword [esp + 4], ebx
shr edi, 0xd
imul eax, edi, 0xffffd8f0
add eax, esi
mov dword [esp + 8], eax
mov eax, edi
mov ecx, 0x28f5d
mul ecx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul eax, ecx, 0xffffff9c
add eax, edx
imul ebx, edx, 0xffffff9c
add ebx, edi
mov edi, eax
mov edx, ecx
add dl, 0x30
mov esi, dword [esp + 0x5c]
mov dword [esi], 0x30303030
mov dword [esi + 0x14], 0x30303030
mov dword [esi + 0x10], 0x30303030
mov dword [esi + 0xc], 0x30303030
mov dword [esi + 8], 0x30303030
mov dword [esi + 4], 0x30303030
mov byte [esi + 1], dl
cmp eax, 0xa
setb al
xor edx, edx
test ecx, ecx
setne dl
sete cl
and cl, al
movzx eax, cl
movzx ecx, word [eax + edi*2 + 0x6035d8]
mov word [esi + edx + 1], cx
add esi, edx
add esi, 1
sub esi, eax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 2], ax
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x5a07ad
mov eax, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], esi
mov esi, ecx
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, edi, 0xffffff9c
mov dword [esp + 4], eax
mov ecx, 0x68db8bb
mul ecx
add ebx, esi
mov esi, dword [esp + 0x30]
shr edx, 8
imul ecx, edx, 0x147b
shr ecx, 0x13
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
imul edi, ecx, 0xffffff9c
add edi, edx
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 6], ax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 8], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xa], ax
imul eax, edx, 0xffffd8f0
add eax, dword [esp + 4]
je 0x5a08d4
imul ecx, eax, 0x147b
shr ecx, 0x13
imul edi, ecx, 0xffffff9c
add edi, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 0xc], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xe], ax
mov eax, 0x10
test edi, edi
je 0x5a08e1
movzx ecx, byte [edi + 0x6036a0]
jmp 0x5a08eb
push 0
push 0x5f5e100
push ecx
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
add eax, ebx
mov dword [esp + 4], eax
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
shr edi, 0xd
imul ebx, edi, 0xffffd8f0
mov eax, edi
mov ecx, 0x28f5d
mul ecx
add ebx, esi
mov dword [esp + 8], ebx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul eax, ecx, 0xffffff9c
add eax, edx
imul edx, edx, 0xffffff9c
add edx, edi
mov dword [esp + 0x28], edx
mov ebx, ecx
add bl, 0x30
xor edx, edx
test ecx, ecx
sete dl
mov esi, 2
sub esi, edx
mov ecx, edx
neg ecx
cmp eax, 0xa
setb bh
and bh, dl
mov ebp, dword [esp + 0x5c]
mov byte [ebp + 1], bl
movzx edx, bh
mov ebx, dword [esp + 4]
movzx edi, word [edx + eax*2 + 0x6035d8]
mov word [ebp + ecx + 2], di
mov edi, dword [esp + 0x28]
sub esi, edx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [ebp + esi + 2], cx
test ebx, ebx
je 0x5a0626
mov edx, ebx
mov ebx, dword [esp + 8]
imul ecx, ebx, 0x147b
shr ecx, 0x13
imul edi, ecx, 0xffffff9c
mov eax, edx
mov edx, 0x68db8bb
mul edx
add edi, ebx
shr edx, 8
imul eax, edx, 0x147b
shr eax, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [ebp + esi + 4], cx
imul ecx, eax, 0xffffff9c
add ecx, edx
movzx edi, word [edi + edi + 0x6035d8]
mov word [ebp + esi + 6], di
movzx edi, word [eax + eax + 0x6035d8]
mov word [ebp + esi + 8], di
movzx edi, word [ecx + ecx + 0x6035d8]
mov word [ebp + esi + 0xa], di
imul edx, edx, 0xffffd8f0
add edx, dword [esp + 4]
je 0x5a0801
imul eax, edx, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edi, ecx
movzx ebx, word [eax + eax + 0x6035d8]
mov word [ebp + esi + 0xc], bx
add edi, edx
movzx edi, word [edi + edi + 0x6035d8]
mov word [ebp + esi + 0xe], di
je 0x5a0818
movzx ecx, byte [ecx + edx + 0x6036a0]
jmp 0x5a0822
mov ebp, dword [esp + 0x5c]
sub ebp, eax
push 0
push 0x5f5e100
push ecx
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
add eax, ebx
mov dword [esp + 8], eax
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
shr edi, 0xd
mov eax, edi
mov ecx, 0x28f5d
mul ecx
imul ecx, edi, 0xffffd8f0
add ecx, esi
mov dword [esp + 4], ecx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul esi, ecx, 0xffffff9c
add esi, edx
imul eax, edx, 0xffffff9c
add eax, edi
mov ebx, ecx
add bl, 0x30
cmp esi, 0xa
setb bh
xor edx, edx
test ecx, ecx
mov byte [ebp + 2], bl
setne dl
sete cl
and cl, bh
mov ebx, dword [esp + 8]
movzx ecx, cl
movzx edi, word [ecx + esi*2 + 0x6035d8]
mov word [ebp + edx + 2], di
add ebp, edx
add ebp, 2
sub ebp, ecx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [ebp + 2], cx
test ebx, ebx
je 0x5a08f6
mov esi, dword [esp + 4]
imul ecx, esi, 0x147b
shr ecx, 0x13
imul edi, ecx, 0xffffff9c
mov eax, ebx
mov edx, 0x68db8bb
mul edx
add edi, esi
shr edx, 8
imul eax, edx, 0x147b
shr eax, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [ebp + 4], cx
imul esi, eax, 0xffffff9c
add esi, edx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [ebp + 6], cx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [ebp + 8], cx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [ebp + 0xa], cx
imul ecx, edx, 0xffffd8f0
add ecx, ebx
mov ebx, dword [esp + 0x20]
je 0x5a0a83
imul eax, ecx, 0x147b
shr eax, 0x13
imul esi, eax, 0xffffff9c
add esi, ecx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [ebp + 0xc], cx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [ebp + 0xe], cx
mov ecx, 0x10
jmp 0x5a0a88
mov dword [esp + 4], esi
cmp dword [esp + 8], 0
je 0x5a094b
mov ebx, dword [esp + 8]
imul eax, ebx, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx edi, word [eax + eax + 0x6035d8]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 4]
mov word [ebp + esi + 4], di
add edx, ebx
movzx edx, word [edx + edx + 0x6035d8]
mov word [ebp + esi + 6], dx
mov ebx, dword [esp + 0x20]
je 0x5a0a50
mov eax, dword [esp + 8]
movzx ecx, byte [ecx + eax + 0x6036a0]
jmp 0x5a0a5a
push 0
push 0x5f5e100
push edi
push edx
mov edi, edx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov ecx, eax
add ecx, edi
cmp esi, 0x63
ja 0x5a0888
xor eax, eax
cmp esi, 0xa
setb al
movzx edx, word [eax + esi*2 + 0x6035d8]
mov word [ebp], dx
sub ebp, eax
add ebp, 2
jmp 0x5a0e5b
mov eax, esi
cmp esi, 0xf423f
ja 0x5a0965
mov edx, 0x68db9
mul edx
imul eax, ecx, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 4], ax
add ebp, 6
jmp 0x5a09e1
mov ecx, 0x68db8bb
mul ecx
imul eax, edi, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, ebx
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, esi, 0xffffff9c
add ebx, eax
imul eax, edi, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov word [ebp], dx
sub ebp, ecx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov ebx, dword [esp + 0x20]
mov word [ebp + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [ebp + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
jmp 0x5a0a40
cmp dword [esp + 8], 0
je 0x5a0ab6
mov eax, dword [esp + 8]
mov ebx, esi
mov esi, eax
imul eax, eax, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx edi, word [eax + eax + 0x6035d8]
mov word [ebx + 4], di
add edx, esi
mov esi, ebx
movzx edx, word [edx + edx + 0x6035d8]
mov word [ebx + 6], dx
je 0x5a0b94
mov eax, dword [esp + 8]
movzx ecx, byte [ecx + eax + 0x6036a0]
jmp 0x5a0b9e
test ecx, ecx
mov edi, dword [esp]
je 0x5a0a69
movzx ecx, byte [ecx + 0x6036a0]
jmp 0x5a0a73
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov ebx, dword [esp + 0x20]
mov edi, dword [esp]
mov eax, 0x10
sub eax, ecx
jmp 0x5a0bcd
cmp ecx, 0x270f
mov eax, ecx
ja 0x5a0acb
imul edi, eax, 0x147b
mov ecx, edi
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, eax
xor ebx, ebx
cmp edi, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ebx
mov ebx, dword [esp + 0x20]
movzx eax, word [edx + edx + 0x6035d8]
mov edx, dword [esp + 0x10]
mov word [ebp + 2], ax
add ebp, 4
jmp 0x5a0ec6
cmp esi, 0x270f
ja 0x5a0b33
imul eax, esi, 0x147b
mov edx, eax
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, esi
mov esi, ebx
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + edx*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ebx
mov ebx, esi
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebp + 2], ax
add ebp, 4
jmp 0x5a0e5b
mov eax, 0xc
test edi, edi
jne 0x5a0377
movzx ecx, byte [ecx + 0x6036a0]
add ecx, 2
mov edi, dword [esp + 0x28]
sub eax, ecx
jmp 0x5a0ca0
cmp dword [esp + 4], 0
mov ebx, dword [esp + 0x20]
je 0x5a0c57
mov edi, dword [esp + 4]
imul eax, edi, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx esi, word [eax + eax + 0x6035d8]
mov word [ebp + 4], si
add edx, edi
movzx edx, word [edx + edx + 0x6035d8]
mov word [ebp + 6], dx
mov edi, dword [esp]
je 0x5a0c6d
mov eax, dword [esp + 4]
movzx eax, byte [ecx + eax + 0x6036a0]
jmp 0x5a0c77
mov esi, edi
mov edx, edi
test esi, esi
mov ebx, dword [esp + 0x20]
mov edi, dword [esp]
je 0x5a0bae
xor ecx, ecx
jmp 0x5a0bb5
mov edx, 0x68db8bb
mul edx
imul eax, ecx, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, esi, 0xffffff9c
add ebx, eax
imul eax, edi, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov word [ebp], dx
sub ebp, ecx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov ebx, dword [esp + 0x20]
mov word [ebp + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [ebp + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [ebp + 6], ax
add ebp, 8
mov esi, dword [esp]
mov eax, esi
mov ecx, 0x68db8bb
mul ecx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, ecx, 0xffffff9c
add edi, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [ebp], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 6], ax
add ebp, 8
mov esi, dword [esp + 0xc]
jmp 0x5a0d3f
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov edi, dword [esp]
mov eax, 8
sub eax, ecx
jmp 0x5a0bcd
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov ebx, dword [esp + 0x20]
mov eax, 0xc
sub eax, ecx
jmp 0x5a0bcd
mov ecx, 0xc
mov edx, dword [esp + 0x10]
mov edi, dword [esp]
test esi, esi
je 0x5a0aa3
movzx eax, byte [esi + 0x6036a0]
mov esi, dword [esp + 0xc]
jmp 0x5a0eed
movzx eax, byte [eax + 0x6036a0]
add eax, 2
mov esi, dword [esp + 0xc]
jmp 0x5a0eed
mov eax, edi
test ebx, ebx
mov edi, dword [esp + 0x28]
je 0x5a0c89
xor ecx, ecx
jmp 0x5a0c90
cmp eax, 0xf423f
ja 0x5a0d61
mov ecx, 0x68db9
mov esi, eax
mul ecx
imul eax, edi, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 4], ax
add ebp, 6
jmp 0x5a0ebe
mov eax, esi
cmp esi, 0xf423f
ja 0x5a0ddd
mov edx, 0x68db9
mul edx
imul eax, edx, 0xffffd8f0
add eax, esi
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, esi, 0xffffff9c
add edi, eax
xor eax, eax
cmp edx, 0xa
setb al
movzx edx, word [eax + edx*2 + 0x6035d8]
mov word [ebp], dx
sub ebp, eax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebp + 4], ax
add ebp, 6
jmp 0x5a0e5b
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov edi, dword [esp + 0x28]
mov eax, 8
sub eax, ecx
jmp 0x5a0ca0
movzx ecx, byte [eax + 0x6036a0]
movzx edx, byte [edx + 0x6036a0]
add edx, ecx
mov eax, 4
sub eax, edx
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 4]
add eax, esi
lea ecx, [eax + ebp]
xor edx, edx
cmp eax, 2
sete dl
sub ecx, edx
lea edx, [edi - 1]
mov al, byte [ebp + 1]
mov byte [ebp], al
mov byte [ebp + 1], 0x2e
mov word [ecx], 0x2d65
mov eax, edx
shr eax, 0x1f
lea ebp, [ecx + eax]
add ebp, 1
sar edx, 0x1f
lea eax, [edi + edx]
add eax, 0xffffffff
xor eax, edx
cmp eax, 0x63
ja 0x5a0c2b
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [ebp], ax
sub ebp, ecx
add ebp, 2
mov esi, dword [esp + 0xc]
jmp 0x5a0d3f
imul ecx, eax, 0x290
shr ecx, 0x10
imul edx, ecx, 0xffffff9c
add edx, eax
add cl, 0x30
mov byte [ebp], cl
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 1], ax
add ebp, 3
mov esi, dword [esp + 0xc]
jmp 0x5a0d3f
test eax, eax
mov edx, dword [esp + 0x10]
mov edi, dword [esp]
je 0x5a0ed4
xor ecx, ecx
jmp 0x5a0edb
movzx eax, byte [eax + 0x6036a0]
add eax, 2
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, 8
jmp 0x5a0eed
movzx ecx, byte [eax + 0x6036a0]
movzx edx, byte [ebx + 0x6036a0]
add edx, ecx
mov eax, 4
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x48]
mov ecx, edi
add edi, eax
lea ebx, [ecx + eax]
add ebx, 0xffffffff
mov ecx, edi
and ecx, 3
xor edx, edx
cmp ebx, 3
jb 0x5a0cef
and edi, 0xfffffffc
mov eax, dword [esp + 0x88]
lea ebx, [eax + ebp]
add ebx, 4
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebx + edx - 3]
mov dword [ebx + edx - 4], eax
add edx, 4
cmp edi, edx
jne 0x5a0ce0
add esi, dword [esp + 4]
test ecx, ecx
je 0x5a0d1f
add edx, dword [esp + 0x88]
lea eax, [edx + ebp]
add eax, 1
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [eax + edx - 1], bl
add edx, 1
cmp ecx, edx
jne 0x5a0d10
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp]
mov byte [eax + ecx], 0x2e
add eax, ecx
add eax, 2
cmp eax, esi
jb 0x5a0d35
mov esi, eax
mov ebp, esi
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov word [ebp], 0xa2c
add ebp, 2
add dword [esp + 0x14], 0xffffffff
je 0x5a1dae
mov edx, dword [edx + 0x10]
mov eax, ebx
jmp 0x59e840
mov ecx, 0x68db8bb
mov esi, eax
mul ecx
imul eax, edi, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, esi, 0xffffff9c
add ebx, eax
imul eax, edi, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov word [ebp], dx
sub ebp, ecx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov ebx, dword [esp + 0x20]
mov word [ebp + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [ebp + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
jmp 0x5a0eb7
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul edi, edx, 0x147b
mov dword [esp + 4], edi
shr edi, 0x13
imul ebx, eax, 0x147b
shr ebx, 0x13
imul esi, edi, 0xffffff9c
add esi, edx
mov dword [esp], esi
imul edx, ebx, 0xffffff9c
add edx, eax
xor eax, eax
cmp dword [esp + 4], 0x500000
setb al
movzx esi, word [eax + edi*2 + 0x6035d8]
mov word [ebp], si
sub ebp, eax
mov eax, dword [esp]
movzx eax, word [eax + eax + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov ebx, dword [esp + 0x20]
mov word [ebp + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 6], ax
add ebp, 8
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, ecx, 0xffffff9c
add edi, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [ebp], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebp + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebp + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [ebp + 6], ax
add ebp, 8
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov word [ebp], 0x302e
add ebp, 2
jmp 0x5a0d43
movzx ecx, byte [esi + 0x6036a0]
mov esi, dword [esp + 0xc]
movzx eax, byte [eax + 0x6036a0]
add eax, ecx
mov ecx, 4
sub ecx, eax
add ebp, ecx
mov eax, dword [esp + 0x5c]
mov word [eax], 0x2e30
test edi, edi
jns 0x5a0d43
neg edi
add eax, 2
push edi
push 0x30
push eax
call fcn.005c5400
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x5a0d43
mov edx, eax
shr edx, 1
cmp edx, ecx
ja 0x5a0f26
mov edx, ecx
add edx, 7
and edx, 0xfffffff8
add edx, eax
jb 0x5a8461
push edx
push eax
mov edi, edx
mov ebx, dword [esp + 0x48]
push ebx
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x20], edi
sub edi, eax
add edi, esi
sub ecx, ebx
add ecx, esi
push eax
push ecx
push edi
call fcn.005c4cd0
add esp, 0xc
sub ebp, ebx
add ebp, esi
mov eax, esi
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], esi
mov edi, ecx
mov esi, dword [esp + 0x24]
jmp 0x59eb12
mov edi, eax
shr edi, 1
cmp edi, ecx
ja 0x5a0fa3
mov edi, ecx
add edi, 7
and edi, 0xfffffff8
add edi, eax
jb 0x5a8461
push edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov edx, edi
sub edx, eax
add edx, esi
mov dword [esp + 4], edx
sub ecx, dword [esp + 0x40]
add ecx, esi
push eax
push ecx
push dword [esp + 0xc]
call fcn.005c4cd0
add esp, 0xc
sub ebp, dword [esp + 0x40]
add ebp, esi
mov eax, esi
mov dword [esp + 0x20], edi
add eax, edi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc]
jmp 0x59e8a5
mov eax, dword [esp + 0xcc]
test al, 0x10
jne 0x5a1c50
test al, 8
je 0x5a71c3
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 4]
or dword [esp + 8], eax
je 0x5a1c67
mov dword [ebp], 0x4e614e
jmp 0x5a0c4b
mov ecx, dword [esp + 8]
mov esi, dword [esp + 4]
shld esi, ecx, 5
mov dword [esp + 4], esi
shl ecx, 5
mov dword [esp + 8], ecx
add ecx, 0xfffffff0
adc esi, 0xffffffff
mov eax, ecx
mov edi, 0x6a8346d2
mul edi
mov dword [esp], edx
mov eax, ecx
mov edx, 0x6c07a2c2
mul edx
mov dword [esp + 0x28], edx
mov ebx, eax
mov eax, esi
mul edi
mov edi, edx
mov dword [esp + 0x2c], eax
mov eax, esi
mov edx, 0x6c07a2c2
mul edx
add ebx, dword [esp]
adc eax, dword [esp + 0x28]
adc edx, 0
add ebx, dword [esp + 0x2c]
adc eax, edi
mov edi, eax
adc edx, 0
mov dword [esp + 0x28], edx
mov eax, 0x9e19db92
lea ebx, [eax + 0x16c94017]
mov dword [esp + 0x84], ebx
mov eax, ecx
mul ebx
mov dword [esp + 0x2c], edx
mov dword [esp], eax
mov eax, ecx
mov ecx, 0x9e19db92
mul ecx
mov dword [esp + 0x48], edx
mov ecx, eax
mov eax, esi
mul ebx
mov dword [esp + 0x30], edx
mov ebx, eax
mov eax, esi
mov edx, 0x9e19db92
mul edx
mov esi, eax
add ecx, dword [esp + 0x2c]
adc esi, dword [esp + 0x48]
adc edx, 0
add ecx, ebx
adc esi, dword [esp + 0x30]
adc edx, 0
mov ebx, edx
mov eax, dword [esp]
add eax, edi
mov dword [esp], eax
mov edx, dword [esp + 0x28]
adc ecx, edx
setb byte [esp + 0x2c]
cmp eax, edi
mov edi, ecx
sbb edi, edx
setb dh
or dh, byte [esp + 0x2c]
movzx edi, dh
add edi, esi
adc ebx, 0
mov dword [esp + 0x48], ebx
mov eax, 1
cmp eax, dword [esp]
mov eax, 0
sbb eax, ecx
setb byte [esp + 0x2c]
mov ecx, dword [esp + 8]
mov eax, ecx
mov edx, 0x6a8346d2
mul edx
mov dword [esp + 0x30], edx
mov eax, ecx
mov ecx, 0x6c07a2c2
mul ecx
mov dword [esp], edx
mov ecx, eax
mov esi, dword [esp + 4]
mov eax, esi
mov edx, 0x6a8346d2
mul edx
mov dword [esp + 0x78], edx
mov ebx, eax
mov dword [esp + 0x54], eax
mov eax, esi
mov edx, 0x6c07a2c2
mul edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x28], edx
movzx esi, byte [esp + 0x2c]
or esi, edi
mov dword [esp + 0x80], esi
add ecx, dword [esp + 0x30]
mov esi, dword [esp]
adc esi, eax
mov edi, edx
adc edi, 0
add ecx, ebx
adc esi, dword [esp + 0x78]
mov dword [esp], esi
adc edi, 0
mov ecx, dword [esp + 8]
mov eax, ecx
mov esi, dword [esp + 0x84]
mul esi
mov dword [esp + 0xac], edx
mov dword [esp + 0x2c], eax
mov eax, ecx
mov ecx, 0x9e19db92
mul ecx
mov dword [esp + 0xb0], edx
mov ecx, eax
mov ebx, dword [esp + 4]
mov eax, ebx
mul esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x74], eax
mov eax, ebx
mov edx, 0x9e19db92
mul edx
mov esi, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x30], edx
xor eax, eax
imul eax, eax, 0x9e19db92
mov dword [esp + 0x94], eax
add ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
adc ebx, esi
adc edx, eax
add ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
adc eax, 0
add eax, ebx
adc edx, 0
mov ebx, edx
mov esi, dword [esp + 0x2c]
mov edx, dword [esp]
add esi, edx
mov dword [esp + 0x2c], esi
adc ecx, edi
setb byte [esp + 4]
cmp esi, edx
mov esi, ecx
sbb esi, edi
setb dh
or dh, byte [esp + 4]
movzx esi, dh
add esi, eax
adc ebx, 0
mov dword [esp + 4], ebx
mov eax, 1
cmp eax, dword [esp + 0x2c]
mov eax, 0
sbb eax, ecx
setb byte [esp]
mov edi, dword [esp + 8]
or edi, 0x10
mov eax, edi
mov edx, 0x6a8346d2
mul edx
mov ebx, edx
mov eax, edi
mov ecx, 0x6c07a2c2
mul ecx
mov ecx, edx
movzx edx, byte [esp]
mov dword [esp], esi
or edx, esi
mov dword [esp + 8], edx
add eax, ebx
adc ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x28]
adc edx, 0
add eax, dword [esp + 0x54]
adc ecx, dword [esp + 0x78]
adc edx, 0
mov dword [esp + 0x28], edx
mov eax, edi
mul dword [esp + 0x84]
mov esi, edx
mov ebx, eax
mov eax, edi
mov edx, 0x9e19db92
mul edx
add eax, esi
adc edx, dword [esp + 0x98]
mov esi, dword [esp + 0x30]
adc esi, dword [esp + 0x94]
add eax, dword [esp + 0x74]
mov edi, dword [esp + 0x68]
adc edi, 0
add edi, edx
adc esi, 0
add ebx, ecx
mov edx, dword [esp + 0x28]
adc eax, edx
setb byte [esp + 0x2c]
cmp ebx, ecx
mov ecx, eax
sbb ecx, edx
setb cl
or cl, byte [esp + 0x2c]
movzx ecx, cl
add ecx, edi
adc esi, 0
mov edx, 1
cmp edx, ebx
mov edx, 0
sbb edx, eax
mov edx, dword [esp + 4]
setb al
movzx ebx, al
or ebx, ecx
mov eax, dword [esp + 0xa8]
and eax, 1
add dword [esp + 0x80], eax
adc dword [esp + 0x48], 0
sub ebx, eax
sbb esi, 0
cmp dword [esp + 8], 0x28
mov eax, edx
sbb eax, 0
jb 0x5a13c0
push 0
push 0x28
push edx
push dword [esp + 0xc]
call fcn.005c5870
mov edi, edx
mov dword [esp + 0x28], eax
mov ecx, 0x28
mul ecx
mov dword [esp + 0x2c], edi
lea edi, [edi*8]
lea edi, [edi + edi*4]
lea ecx, [edx + edi]
cmp eax, dword [esp + 0x80]
sbb ecx, dword [esp + 0x48]
setb cl
add eax, 0x28
adc edi, edx
cmp ebx, eax
mov edx, esi
sbb edx, edi
setae dl
xor dl, cl
mov edx, dword [esp + 4]
je 0x5a1661
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
mov esi, edx
mov eax, SysReAllocString
and esi, eax
mov edi, dword [esp]
mov eax, 0xfffffffc
and edi, eax
mov eax, edi
add eax, 4
mov dword [esp + 0x2c], eax
mov eax, esi
adc eax, 0
mov dword [esp + 0x78], eax
mov ecx, edi
or ecx, 2
mov ebx, dword [esp + 8]
cmp ecx, ebx
mov eax, esi
sbb eax, edx
mov eax, 1
jb 0x5a1419
xor ebx, ecx
mov eax, edx
xor eax, esi
or eax, ebx
sete al
mov ecx, dword [esp]
shr cl, 2
and cl, al
movzx eax, cl
shrd dword [esp], edx, 2
shr edx, 2
mov ebx, eax
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
sbb dword [esp + 0x30], eax
setae cl
cmp edi, dword [esp + 0x80]
sbb esi, dword [esp + 0x48]
setb al
xor al, cl
jne 0x5a144b
movzx ebx, cl
mov ecx, dword [esp]
add ecx, ebx
adc edx, 0
mov ebx, 0xfffffebc
jmp 0x5a167d
mov edx, eax
shr edx, 1
cmp edx, ecx
ja 0x5a1467
mov edx, ecx
add edx, 7
and edx, 0xfffffff8
add edx, eax
jb 0x5a8461
push edx
push eax
mov edi, edx
mov ebx, dword [esp + 0x48]
push ebx
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x20], edi
sub edi, eax
add edi, esi
sub ecx, ebx
add ecx, esi
push eax
push ecx
push edi
call fcn.005c4cd0
add esp, 0xc
sub ebp, ebx
add ebp, esi
mov eax, esi
mov ebx, dword [esp + 0x20]
add eax, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc]
jmp 0x59f7ad
mov edx, eax
shr edx, 1
cmp edx, ecx
ja 0x5a14e2
mov edx, ecx
add edx, 7
and edx, 0xfffffff8
add edx, eax
jb 0x5a8461
push edx
push eax
mov edi, edx
mov ebx, dword [esp + 0x48]
push ebx
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x20], edi
sub edi, eax
add edi, esi
sub ecx, ebx
add ecx, esi
push eax
push ecx
push edi
call fcn.005c4cd0
add esp, 0xc
sub ebp, ebx
add ebp, esi
mov eax, esi
mov ebx, dword [esp + 0x20]
add eax, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x24]
jmp 0x59ecfb
lea ecx, [edx + 3]
mov esi, eax
shr esi, 1
cmp esi, ecx
ja 0x5a1560
mov esi, ecx
mov dword [esp], edx
add esi, 7
and esi, 0xfffffff8
add esi, eax
jb 0x5a8461
push esi
push eax
push dword [esp + 0x48]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub edx, ecx
mov dword [esp + 0x20], esi
sub esi, edx
add esi, eax
mov dword [esp + 4], esi
mov ebx, dword [esp + 0x40]
sub ecx, ebx
add ecx, eax
push edx
push ecx
push esi
mov esi, eax
call fcn.005c4cd0
add esp, 0xc
sub ebp, ebx
add ebp, esi
mov eax, esi
mov ecx, dword [esp + 0x20]
mov ebx, ecx
add eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc]
mov edx, dword [esp]
jmp 0x59f891
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x50], 7
jb 0x5a163b
mov dword [ebp], 0x20202020
mov dword [ebp + edx], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
add ebp, edx
add eax, 0xfffffff8
jne 0x5a15ed
cmp bl, 7
sete al
shl al, 5
mov ecx, eax
or cl, 0x5b
mov byte [ebp], cl
or al, 0x5d
mov byte [ebp + 1], al
mov word [ebp + 2], 0xa2c
add ebp, 4
mov ebx, edi
jmp 0x59f8aa
cmp ebx, eax
sbb esi, edi
setae al
movzx eax, al
mov ecx, dword [esp + 0x28]
add ecx, eax
mov edx, dword [esp + 0x2c]
adc edx, 0
mov ebx, 0xfffffebd
mov eax, dword [esp + 0x5c]
lea esi, [eax + 1]
mov eax, 0xa4c67fff
cmp eax, ecx
mov eax, 0x38d7e
sbb eax, edx
jae 0x5a17e2
push 0
push 0x5f5e100
push edx
push ecx
mov dword [esp + 0x10], ecx
mov edi, edx
mov dword [esp + 0x14], edx
call fcn.005c5870
mov dword [esp + 0x28], eax
imul edx, eax, 0xfa0a1f00
mov ecx, dword [esp]
add edx, ecx
mov dword [esp + 8], edx
push 0x2386f2
push 0x6fc10000
push edi
push ecx
mov edi, ecx
call fcn.005c5870
imul ecx, eax, 0xfa0a1f00
add ecx, dword [esp + 0x28]
add al, 0x30
mov byte [esi], al
mov eax, 0x6fc10000
add eax, 0xffffffff
mov edx, 0x2386f2
adc edx, 0xffffffff
cmp eax, edi
sbb edx, dword [esp + 4]
adc esi, 0
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
mov dword [esp + 4], eax
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul eax, ecx, 0xffffff9c
mov dword [esp], eax
add dword [esp], edx
imul edx, edi, 0xffffff9c
add edx, dword [esp + 4]
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi], ax
mov eax, dword [esp]
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 6], ax
mov ecx, dword [esp + 8]
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
mov dword [esp + 4], eax
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul eax, ecx, 0xffffff9c
mov dword [esp], eax
add dword [esp], edx
imul edx, edi, 0xffffff9c
add edx, dword [esp + 4]
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 8], ax
mov eax, dword [esp]
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 0xa], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xc], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 0xe], ax
add esi, 0x10
jmp 0x5a1aca
cmp ecx, 0x5f5e100
mov eax, edx
sbb eax, 0
jb 0x5a1835
push 0
push 0x5f5e100
push edx
push ecx
mov dword [esp + 0x10], ecx
call fcn.005c5870
mov edi, eax
mov dword [esp + 4], edx
mov ecx, 0xfa0a1f00
mul ecx
mov ecx, eax
add ecx, dword [esp]
cmp edi, 0x63
ja 0x5a185b
xor eax, eax
cmp edi, 0xa
setb al
movzx edx, word [eax + edi*2 + 0x6035d8]
mov word [esi], dx
sub esi, eax
add esi, 2
jmp 0x5a1a5b
mov dword [esp + 4], edx
cmp ecx, 0x63
ja 0x5a18a7
xor eax, eax
cmp ecx, 0xa
setb al
movzx ecx, word [eax + ecx*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
add esi, 2
jmp 0x5a1aca
cmp edi, 0x270f
ja 0x5a18f3
imul edx, edi, 0x147b
mov dword [esp], edx
shr edx, 0x13
imul eax, edx, 0xffffff9c
add eax, edi
mov edi, eax
xor eax, eax
cmp dword [esp], 0x500000
setb al
movzx edx, word [eax + edx*2 + 0x6035d8]
mov word [esi], dx
sub esi, eax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a1a5b
mov edi, ecx
mov eax, ecx
cmp ecx, 0x270f
ja 0x5a196e
imul edi, edi, 0x147b
mov ecx, edi
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, eax
xor eax, eax
cmp edi, 0x500000
setb al
movzx ecx, word [eax + ecx*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a1aca
mov eax, edi
cmp edi, 0xf423f
ja 0x5a19d8
mov edx, 0x68db9
mul edx
imul eax, dword [esp + 4], 0x68db9
add eax, edx
imul edx, eax, 0xffffd8f0
add edx, edi
imul edi, edx, 0x147b
shr edi, 0x13
mov dword [esp + 4], edi
imul edi, dword [esp + 4], 0xffffff9c
mov dword [esp], edi
add dword [esp], edx
xor edx, edx
cmp eax, 0xa
setb dl
movzx eax, word [edx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, edx
mov eax, dword [esp + 4]
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 2], ax
mov eax, dword [esp]
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a1a5b
mov eax, edi
cmp edi, 0xf423f
ja 0x5a1b35
mov ecx, 0x68db9
mul ecx
imul eax, dword [esp + 4], 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, ecx, 0x147b
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a1aca
mov edx, 0x68db8bb
mul edx
imul eax, dword [esp + 4], 0x68db8bb
add eax, edx
shr eax, 8
imul edx, eax, 0xffffd8f0
add edx, edi
mov dword [esp], edx
imul edi, eax, 0x147b
shr edi, 0x13
imul edx, dword [esp], 0x147b
shr edx, 0x13
mov dword [esp + 8], edx
imul edx, edi, 0xffffff9c
mov dword [esp + 4], edx
add dword [esp + 4], eax
imul eax, dword [esp + 8], 0xffffff9c
add eax, dword [esp]
movzx edi, word [edi + edi + 0x6035d9]
mov word [esi], di
mov edx, dword [esp + 4]
movzx edi, word [edx + edx + 0x6035d8]
mov word [esi + 1], di
mov edx, dword [esp + 8]
movzx edx, word [edx + edx + 0x6035d8]
mov word [esi + 3], dx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 5], ax
add esi, 7
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
mov dword [esp + 4], eax
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul eax, ecx, 0xffffff9c
mov dword [esp], eax
add dword [esp], edx
imul edx, edi, 0xffffff9c
add edx, dword [esp + 4]
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi], ax
mov eax, dword [esp]
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov ecx, dword [esp + 0x88]
mov al, byte [ebp + ecx + 1]
mov byte [ebp + ecx], al
mov byte [ebp + ecx + 1], 0x2e
sub ebx, dword [esp + 0x5c]
add ebx, 0xfffffffe
lea eax, [esi + 5]
movzx edx, byte [eax - 6]
add ebx, 1
add eax, 0xffffffff
add esi, 0xffffffff
cmp dl, 0x30
je 0x5a1ae8
add ebx, esi
xor ecx, ecx
cmp dl, 0x2e
setne cl
lea ebp, [eax + ecx]
mov word [eax + ecx - 5], 0x2d65
imul edx, ebx, 0xfffffd70
shr edx, 0x10
imul esi, edx, 0xffffff9c
sub esi, ebx
add dl, 0x30
mov byte [eax + ecx - 3], dl
movzx edx, word [esi + esi + 0x6035d8]
mov word [eax + ecx - 2], dx
jmp 0x5a0d37
mov ecx, 0x68db8bb
mul ecx
imul eax, dword [esp + 4], 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edi, eax, 0x147b
mov dword [esp + 4], edi
shr edi, 0x13
imul edx, ecx, 0x147b
shr edx, 0x13
mov dword [esp + 8], edx
imul edx, edi, 0xffffff9c
mov dword [esp], edx
add dword [esp], eax
mov edx, dword [esp + 8]
imul eax, edx, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp dword [esp + 4], 0x500000
setb cl
movzx edi, word [ecx + edi*2 + 0x6035d8]
mov word [esi], di
sub esi, ecx
mov ecx, dword [esp]
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [esi + 2], cx
movzx ecx, word [edx + edx + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
jmp 0x5a1ac3
mov edx, eax
shr edx, 1
mov edi, edx
cmp edx, ecx
ja 0x5a1bcb
mov edi, ecx
add edi, 7
and edi, 0xfffffff8
add edi, eax
jb 0x5a8461
push edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov ebx, edi
mov dword [esp + 0x20], edi
sub ebx, eax
add ebx, esi
sub ecx, dword [esp + 0x40]
add ecx, esi
push eax
push ecx
push ebx
call fcn.005c4cd0
add esp, 0xc
sub ebp, dword [esp + 0x40]
add ebp, esi
mov eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x70], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
mov bl, byte [esp + 4]
cmp dword [esp + 0x18], 0
jne 0x59ec81
jmp 0x5a163b
mov dword [ebp], 0x6c6c756e
add ebp, 4
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
jmp 0x5a0d43
mov byte [ebp], 0x2d
shr edi, 0x1f
mov dword [ebp + edi + 4], 0x7974696e
mov dword [ebp + edi], 0x69666e49
add ebp, edi
add ebp, 8
mov esi, dword [esp + 0xc]
jmp 0x5a0d3f
cmp bl, 7
sete cl
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x14]
test dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x34]
je 0x5a1cad
mov ebx, 0x20
lea ecx, [ebx + ebp]
cmp ecx, dword [esp + 0x1c]
jae 0x5a1f8d
mov dword [esp + 0x20], eax
mov bl, byte [esp + 4]
cmp bl, 7
sete cl
mov ebx, dword [esp + 0x14]
lea eax, [ebx + ebx]
or eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov dword [edi - 8], eax
mov eax, dword [esp + 0x58]
mov dword [edi - 4], eax
shl dword [esp], cl
cmp dword [esp + 0x18], 0
je 0x5a1d80
and ebx, dword [esp + 0x24]
jne 0x5a1d80
mov eax, dword [esp + 0x18]
test al, 7
mov bl, byte [esp + 4]
je 0x5a1d26
xor ecx, ecx
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
nop
mov dword [ebp], 0x20202020
add ebp, edx
add ecx, 1
cmp eax, ecx
jne 0x5a1d10
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp dword [esp + 0x50], 7
jb 0x5a1d84
nop
nop
nop
mov dword [ebp], 0x20202020
mov dword [ebp + edx], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
mov dword [edx + ebp], 0x20202020
add ebp, edx
add ebp, edx
add eax, 0xfffffff8
jne 0x5a1d30
jmp 0x5a1d84
mov bl, byte [esp + 4]
cmp bl, 7
sete al
shl al, 5
or al, 0x5b
mov byte [ebp], al
mov byte [ebp + 1], 0xa
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
cmp bl, 7
jne 0x59e7d0
mov eax, dword [eax + 0x10]
jmp 0x59e7d0
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
lea eax, [ebx - 2]
mov dword [esp + 0x14], eax
mov eax, ebx
add al, 7
mov byte [esp + 8], al
mov dword [esp + 4], 0
lea esi, [ebp - 1]
mov byte [ebp - 2], 0xa
lea eax, [ebx*4 - 1]
add eax, ebp
mov ebp, dword [esp + 0x1c]
cmp eax, ebp
jae 0x5a1f02
mov eax, ebx
add eax, 0xffffffff
je 0x5a1e9d
mov ecx, dword [esp + 4]
mov edx, ecx
not edx
add edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
sub edi, ecx
test dl, 7
je 0x5a1e46
mov dword [esp], edi
mov dword [esp + 0x1c], ebp
movzx edx, byte [esp + 8]
and edx, 7
neg edx
mov edi, 1
mov ecx, dword [esp + 0x38]
mov dword [esi], 0x20202020
add esi, ecx
lea ebp, [edx + edi]
add ebp, 1
add edi, 1
cmp ebp, 1
jne 0x5a1e25
sub ebx, edi
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp]
jmp 0x5a1e48
mov ebx, eax
cmp edi, 7
mov ecx, dword [esp + 0x38]
jb 0x5a1e9d
mov dword [esi], 0x20202020
mov dword [esi + ecx], 0x20202020
add esi, ecx
mov dword [ecx + esi], 0x20202020
add esi, ecx
mov dword [ecx + esi], 0x20202020
add esi, ecx
mov dword [ecx + esi], 0x20202020
add esi, ecx
mov dword [ecx + esi], 0x20202020
add esi, ecx
mov dword [ecx + esi], 0x20202020
add esi, ecx
mov dword [ecx + esi], 0x20202020
add esi, ecx
add esi, ecx
add ebx, 0xfffffff8
jne 0x5a1e51
mov ecx, dword [esp + 0x60]
shl cl, 5
or cl, 0x5d
mov byte [esi], cl
mov ebx, dword [esp + 0x70]
sub ebx, ebp
jbe 0x5a7da1
mov ecx, dword [esp + 0x58]
mov edi, dword [ecx + 0x10]
lea ecx, [ebp + 8]
mov ebx, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp + 0x58], edx
mov edx, ebx
shr edx, 1
and bl, 1
mov dword [esp + 0x60], ebx
lea ebp, [esi + 3]
add dword [esp + 4], 1
add byte [esp + 8], 7
mov word [esi + 1], 0xa2c
mov dword [esp + 0x1c], ecx
mov ebx, eax
add edx, 0xffffffff
mov dword [esp], edx
mov esi, dword [esp + 0xc]
jne 0x59e7ec
jmp 0x5a1dcd
lea eax, [ebx*4]
mov ebp, dword [esp + 0x20]
shr ebp, 1
cmp ebp, eax
ja 0x5a1f15
mov ebp, eax
add ebp, 7
and ebp, 0xfffffff8
add ebp, dword [esp + 0x20]
jb 0x5a8461
push ebp
push dword [esp + 0x24]
push dword [esp + 0x48]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
mov edi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov edx, ebp
sub edx, eax
add edx, edi
mov dword [esp], edx
sub ecx, dword [esp + 0x40]
add ecx, edi
push eax
push ecx
push dword [esp + 8]
call fcn.005c4cd0
add esp, 0xc
sub esi, dword [esp + 0x40]
add esi, edi
mov eax, edi
add eax, ebp
mov dword [esp + 0x70], eax
mov eax, dword [esp]
mov dword [esp + 0x20], ebp
mov ebp, eax
mov dword [esp + 0x40], edi
jmp 0x5a1de9
mov edi, eax
shr edi, 1
cmp edi, ebx
ja 0x5a1f97
mov edi, ebx
add edi, 7
and edi, 0xfffffff8
add edi, eax
jb 0x5a8461
push edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
mov bl, byte [esp + 4]
je 0x5a8461
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov edx, edi
sub edx, eax
add edx, esi
mov dword [esp + 8], edx
sub ecx, dword [esp + 0x40]
add ecx, esi
push eax
push ecx
push dword [esp + 0x10]
call fcn.005c4cd0
add esp, 0xc
sub ebp, dword [esp + 0x40]
add ebp, esi
mov eax, esi
mov dword [esp + 0x20], edi
add eax, edi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
jmp 0x5a1cc2
mov esi, eax
mov edx, dword [esp + 0xcc]
test dl, 2
jne 0x5a75f7
test dl, 4
jne 0x5a761b
mov eax, 0x6029d8
test edx, 0x40000000
je 0x5a2047
mov eax, 0x6030d8
mov edx, ecx
and dl, 7
add dl, 0xff
cmp dl, 6
ja case.default.0x5a205f
mov dword [esp + 0xc], ebp
movzx edx, dl
jmp dword [edx*4 + 0x604b0c]
mov eax, esi
shld eax, ecx, 0x18
cmp eax, 0x2aaaaaa6
ja 0x5a24e6
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx + 8]
lea ecx, [eax + 2]
push ecx
push dword [esp + 0x40]
mov ebx, eax
call edi
add esp, 8
test eax, eax
je 0x5a24e6
push ebx
push esi
push eax
mov esi, eax
call fcn.005c50c0
mov eax, esi
add esp, 0xc
mov edi, esi
add edi, ebx
jmp 0x5a24b3
test cl, 2
jne 0x5a7922
test cl, 4
jne 0x5a7946
mov ebp, 0x6029d8
test ecx, 0x40000000
je 0x5a20d1
mov ebp, 0x6030d8
lea ecx, [ebx + ebx*8]
lea esi, [ecx + ecx]
add esi, 0x47
and esi, 0xfffffff8
push esi
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov dword [esp + 0x1c], esi
lea ecx, [eax + esi]
mov dword [esp + 0x54], ecx
mov esi, eax
mov ebx, dword [esp + 0x58]
mov eax, dword [ebx]
mov edi, dword [ebx + 4]
mov edx, eax
and edx, 7
cmp edx, 7
sete cl
shld edi, eax, 0x18
shl edi, cl
mov dword [esp + 8], edi
mov eax, ecx
shl al, 5
or al, 0x5b
mov dword [esp + 0x10], esi
mov byte [esi], al
mov eax, ebx
mov eax, dword [ebx + 8]
cmp edx, 7
jne 0x5a251c
mov edx, dword [eax + 0x10]
jmp 0x5a251e
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a2159
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0x40]
mov dword [eax], 7
mov dword [eax + 4], str.invalid_utf_8_encoding_in_string
jmp 0x5a848e
mov dword [esp + 0x14], eax
shld esi, ecx, 0x18
cmp esi, 0x2aaaaaa6
ja 0x5a24e6
mov eax, dword [esp + 0x58]
mov ebp, dword [eax + 8]
lea ecx, [esi + esi*2]
add ecx, ecx
add ecx, 4
push ecx
push dword [esp + 0x40]
mov ebx, esi
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov edx, esi
cmp dword [esp + 0x14], 0x6029d8
mov dword [esp + 0x10], eax
jne 0x5a592f
mov ecx, dword [esp + 0x58]
test byte [ecx], 0x18
je 0x5a592f
mov edi, eax
add edi, 1
mov byte [eax], 0x22
cmp edx, 0x10
jb 0x5a229b
lea esi, [edx - 0x10]
mov ecx, esi
shr ecx, 4
add ecx, 1
and ecx, 3
je 0x5a2225
mov dword [esp], esi
shl ecx, 4
xor edx, edx
mov esi, dword [ebp + edx + 0xc]
mov dword [edi + edx + 0xc], esi
mov esi, dword [ebp + edx + 8]
mov dword [edi + edx + 8], esi
mov esi, dword [ebp + edx]
mov eax, dword [ebp + edx + 4]
mov dword [edi + edx + 4], eax
mov dword [edi + edx], esi
add edx, 0x10
cmp ecx, edx
jne 0x5a21f0
add edi, edx
add ebp, edx
sub ebx, edx
mov edx, ebx
mov eax, dword [esp + 0x10]
mov esi, dword [esp]
cmp esi, 0x30
jb 0x5a229b
mov eax, dword [ebp + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edi + 4], ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [edi + 0x14], ecx
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp + 0x28]
mov dword [edi + 0x28], eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
mov dword [edi + 0x24], ecx
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
mov eax, dword [ebp + 0x38]
mov dword [edi + 0x38], eax
mov eax, dword [ebp + 0x3c]
mov dword [edi + 0x3c], eax
add edi, 0x40
add ebp, 0x40
add edx, 0xffffffc0
cmp edx, 0xf
ja 0x5a222a
mov eax, dword [esp + 0x10]
cmp edx, 4
jb 0x5a6246
lea eax, [edx - 4]
mov ecx, eax
shr ecx, 2
add ecx, 1
and ecx, 7
je 0x5a22d1
mov ebx, edx
shl ecx, 2
xor edx, edx
mov esi, dword [ebp + edx]
mov dword [edi + edx], esi
add edx, 4
cmp ecx, edx
jne 0x5a22bb
add edi, edx
add ebp, edx
sub ebx, edx
mov edx, ebx
cmp eax, 0x1c
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x10]
jb 0x5a624d
mov eax, dword [ebp]
mov dword [edi], eax
mov eax, dword [ebp + 4]
mov dword [edi + 4], eax
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x1c], eax
add edi, 0x20
add ebp, 0x20
add edx, 0xffffffe0
cmp edx, 3
ja 0x5a22e5
mov eax, dword [esp + 0x10]
jmp 0x5a624d
push 8
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov ebx, eax
xor eax, eax
mov ecx, dword [esp + 0x58]
test byte [ecx], 0x18
setne cl
mov edx, 0x65757274
jne 0x5a2358
mov edx, 0x736c6166
mov esi, 0xa2c
mov ebp, dword [esp + 0xc]
jne 0x5a2368
mov esi, 0xa2c65
mov dword [ebx + 4], esi
mov dword [ebx], edx
mov al, cl
neg eax
lea edi, [ebx + eax]
add edi, 5
mov eax, ebx
mov ecx, dword [esp + 0xcc]
mov ebx, ebp
jmp 0x5a24be
push 0x22
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov esi, eax
mov edi, dword [esp + 0x58]
mov edx, dword [edi]
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
test dl, 0x10
jne 0x5a57ed
mov dword [esp + 4], esi
mov edi, dword [edi + 4]
mov ebp, eax
mov dword [esp + 8], 0
mov eax, ecx
neg ecx
mov esi, 0
sbb esi, ebx
shld edi, edx, 0x1d
mov edx, ebx
shr edx, 0x1f
mov dword [esp + 0x10], ebp
mov byte [ebp], 0x2d
and edx, edi
je 0x5a23e6
mov ebx, esi
mov eax, ecx
mov esi, dword [esp + 4]
add esi, edx
mov ecx, 0x5f5e0ff
cmp ecx, eax
sbb dword [esp + 8], ebx
mov edi, eax
jb 0x5a58aa
cmp edi, 0x63
ja 0x5a628c
xor eax, eax
cmp edi, 0xa
setb al
movzx ecx, word [eax + edi*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
add esi, 2
jmp 0x5a70aa
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a2441
lea eax, [esp + 0x9c]
mov dword [eax], 3
mov dword [eax + 4], str.invalid_JSON_value_type
jmp 0x5a250f
push 8
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov ecx, eax
mov eax, 0x65757274
add eax, 0x6f702fa
mov dword [ecx], eax
mov eax, ecx
mov dword [ecx + 4], 0xa2c
mov edi, ecx
add edi, 4
jmp 0x5a24b3
push 4
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov word [eax], 0x5d5b
jmp 0x5a24ae
push 4
push dword [esp + 0x40]
call edi
add esp, 8
test eax, eax
je 0x5a24e6
mov word [eax], 0x7d7b
mov edi, eax
add edi, 2
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc]
test cl, cl
jns 0x5a24c8
mov byte [edi], 0xa
add edi, 1
mov byte [edi], 0
sub edi, eax
mov ecx, eax
mov eax, dword [esp + 0x6c]
mov dword [eax], edi
mov eax, ecx
mov dword [ebx + 4], 0
mov dword [ebx], 0
jmp 0x5a2511
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a2502
lea eax, [esp + 0x9c]
mov dword [eax], 2
mov dword [eax + 4], str.memory_allocation_failed
xor eax, eax
add esp, 0xb8
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, eax
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x54]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x78], ecx
movzx ecx, cl
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0xc]
jmp 0x5a2575
mov byte [eax + 1], cl
add eax, 2
mov edi, eax
mov edx, dword [esp + 0x18]
add ebx, 0xffffffff
je 0x5a573b
mov dword [esp + 0x14], ebx
mov edx, dword [edx + 0x10]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov ebx, ecx
and bl, 7
cmp bl, 4
je 0x5a2790
cmp bl, 5
jne 0x5a2820
shld esi, ecx, 0x18
cmp esi, 0x2aaaaaa6
ja 0x5a8509
mov ebx, dword [edx + 8]
lea eax, [esi + esi*2]
lea ecx, [edi + eax*2]
add ecx, 0x10
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jae 0x5a49f4
mov eax, dword [esp + 0x10]
cmp ebp, 0x6029d8
mov dword [esp + 0x10], eax
jne 0x5a298b
test byte [edx], 0x18
je 0x5a298b
mov byte [edi], 0x22
add edi, 1
cmp esi, 0x10
jb 0x5a26bc
lea eax, [esi - 0x10]
mov ecx, eax
shr ecx, 4
add ecx, 1
and ecx, 3
je 0x5a2647
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
shl ecx, 4
xor edx, edx
nop
nop
nop
nop
nop
mov esi, dword [ebx + edx + 0xc]
mov dword [edi + edx + 0xc], esi
mov esi, dword [ebx + edx + 8]
mov dword [edi + edx + 8], esi
mov esi, dword [ebx + edx]
mov eax, edi
mov edi, dword [ebx + edx + 4]
mov dword [eax + edx + 4], edi
mov edi, eax
mov dword [eax + edx], esi
add edx, 0x10
cmp ecx, edx
jne 0x5a2610
add edi, edx
add ebx, edx
mov esi, dword [esp + 8]
sub esi, edx
mov eax, dword [esp + 0xc]
cmp eax, 0x30
jb 0x5a26bc
nop
nop
nop
nop
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov dword [edi], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [edi + 0x14], ecx
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x28]
mov dword [edi + 0x28], eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov dword [edi + 0x24], ecx
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x34]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
mov eax, dword [ebx + 0x38]
mov dword [edi + 0x38], eax
mov eax, dword [ebx + 0x3c]
mov dword [edi + 0x3c], eax
add edi, 0x40
add ebx, 0x40
add esi, 0xffffffc0
cmp esi, 0xf
ja 0x5a2650
cmp esi, 4
jb 0x5a273c
lea eax, [esi - 4]
mov ecx, eax
shr ecx, 2
add ecx, 1
and ecx, 7
je 0x5a26f7
mov dword [esp + 8], esi
shl ecx, 2
xor edx, edx
nop
nop
nop
nop
nop
nop
mov esi, dword [ebx + edx]
mov dword [edi + edx], esi
add edx, 4
cmp ecx, edx
jne 0x5a26e0
add edi, edx
add ebx, edx
mov esi, dword [esp + 8]
sub esi, edx
cmp eax, 0x1c
jb 0x5a273c
nop
nop
nop
nop
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x1c], eax
add edi, 0x20
add ebx, 0x20
add esi, 0xffffffe0
cmp esi, 3
ja 0x5a2700
test esi, esi
je 0x5a33ef
mov edx, esi
lea ecx, [esi - 1]
and edx, 7
je 0x5a338b
mov dword [esp + 0xc], ecx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx + eax]
mov byte [edi + eax], cl
add eax, 1
cmp edx, eax
jne 0x5a2760
add edi, eax
add ebx, eax
sub esi, eax
mov eax, edi
mov ecx, dword [esp + 0xc]
cmp ecx, 7
jae 0x5a3390
jmp 0x5a33f1
lea eax, [edi + 0x20]
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jae 0x5a49d9
mov eax, ecx
mov ecx, esi
mov esi, dword [esp + 0x10]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
test al, 0x10
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
jne 0x5a28d9
neg ebx
mov edx, 0
sbb edx, ebp
mov esi, ecx
shld esi, eax, 0x1d
mov ecx, ebp
shr ecx, 0x1f
mov byte [edi], 0x2d
and ecx, esi
je 0x5a27e0
mov ebp, edx
mov dword [esp + 0xc], ebx
add edi, ecx
mov eax, 0x5f5e0ff
mov ebx, dword [esp + 0xc]
cmp eax, ebx
mov eax, 0
sbb eax, ebp
jb 0x5a329b
cmp ebx, 0x63
ja 0x5a340f
xor eax, eax
cmp ebx, 0xa
setb al
movzx ecx, word [eax + ebx*2 + 0x6035d8]
mov word [edi], cx
sub edi, eax
add edi, 2
jmp 0x5a421b
mov eax, ecx
and al, 6
cmp al, 6
jne 0x5a2878
lea eax, [edi + 0x10]
cmp eax, dword [esp + 0x24]
jae 0x5a4b04
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
shld esi, ecx, 0x18
jne 0x5a56d0
cmp bl, 7
sete al
shl al, 5
mov ecx, eax
or cl, 0x5b
mov byte [edi], cl
or al, 0x5d
mov byte [edi + 1], al
mov byte [edi + 2], 0x2c
add edi, 3
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
jmp 0x5a3382
cmp bl, 1
mov eax, dword [esp + 0x10]
je 0x5a333e
cmp bl, 2
je 0x5a3311
cmp bl, 3
jne 0x5a5901
lea eax, [edi + 0x10]
cmp eax, dword [esp + 0x24]
jae 0x5a4fe5
mov ebx, edx
xor eax, eax
mov edx, 0x65757274
mov esi, 0xa2c
test cl, 0x18
setne cl
jne 0x5a28c4
mov edx, 0x736c6166
mov esi, 0xa2c65
mov dword [edi + 4], esi
mov dword [edi], edx
mov al, cl
neg eax
add edi, eax
add edi, 6
mov edx, ebx
jmp 0x5a3382
mov esi, ebx
mov eax, 0xffffffff
and esi, eax
mov ecx, ebp
mov eax, 0xfffff
and ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, ebp
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x7ff
je 0x5a4b1f
mov dword [esp + 0x34], esi
mov byte [edi], 0x2d
mov esi, ebp
shr esi, 0x1f
mov eax, 0xfffffffc
add eax, 3
mov edx, SysReAllocString
adc edx, 0
mov dword [esp + 0x80], esi
add esi, edi
and eax, ebx
and edx, ebp
or edx, eax
je 0x5a3301
mov dword [esp + 0x50], esi
test ecx, ecx
mov ebp, dword [esp + 4]
je 0x5a4b52
mov eax, 0xffffffff
add eax, 1
mov ebx, 0xfffff
adc ebx, 0
mov esi, dword [esp + 0x34]
or eax, esi
mov dword [esp + 8], eax
or ebx, dword [esp + 0x1c]
lea eax, [ecx - 0x3ff]
cmp eax, 0x34
ja 0x5a3500
mov eax, dword [esp + 8]
test eax, eax
jne 0x5a34ee
bsf edx, ebx
add edx, 0x20
jmp 0x5a34f1
add esi, ebx
mov dword [esp], edi
mov byte [edi], 0x22
mov dword [esp + 8], esi
mov edi, esi
sub edi, ebx
cmp edi, 0x10
jl 0x5a2b10
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
add eax, ecx
add eax, 1
lea edx, [ebx + ecx]
mov dword [esp + 0xc], edx
movzx edx, byte [ebx + ecx]
cmp byte [ebp + edx], 0
jne 0x5a2ba6
movzx ebp, byte [ebx + ecx + 1]
mov esi, dword [esp + 4]
cmp byte [esi + ebp], 0
mov ebp, dword [esp + 4]
jne 0x5a2baf
movzx edx, byte [ebx + ecx + 2]
cmp byte [ebp + edx], 0
jne 0x5a2bc8
movzx edx, byte [ebx + ecx + 3]
cmp byte [ebp + edx], 0
jne 0x5a2be5
movzx edx, byte [ebx + ecx + 4]
cmp byte [ebp + edx], 0
jne 0x5a2c08
movzx edx, byte [ebx + ecx + 5]
cmp byte [ebp + edx], 0
jne 0x5a2c23
movzx edx, byte [ebx + ecx + 6]
cmp byte [ebp + edx], 0
jne 0x5a2c46
movzx edx, byte [ebx + ecx + 7]
cmp byte [ebp + edx], 0
jne 0x5a2c6b
movzx edx, byte [ebx + ecx + 8]
cmp byte [ebp + edx], 0
jne 0x5a2c8e
movzx edx, byte [ebx + ecx + 9]
cmp byte [ebp + edx], 0
jne 0x5a2cb1
movzx edx, byte [ebx + ecx + 0xa]
cmp byte [ebp + edx], 0
jne 0x5a2cdc
movzx edx, byte [ebx + ecx + 0xb]
cmp byte [ebp + edx], 0
jne 0x5a2d09
movzx edx, byte [ebx + ecx + 0xc]
cmp byte [ebp + edx], 0
jne 0x5a2d34
movzx edx, byte [ebx + ecx + 0xd]
cmp byte [ebp + edx], 0
jne 0x5a2d5f
movzx edx, byte [ebx + ecx + 0xe]
cmp byte [ebp + edx], 0
jne 0x5a2d8f
movzx edx, byte [ebx + ecx + 0xf]
cmp byte [ebp + edx], 0
jne 0x5a2dc1
mov esi, dword [esp + 0xc]
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [eax + 4], esi
mov dword [eax], edx
add ecx, 0x10
add edi, 0xfffffff0
cmp edi, 0xf
jg 0x5a29b0
mov eax, dword [esp]
add eax, ecx
add eax, 1
add ebx, ecx
mov esi, dword [esp + 8]
cmp edi, 4
jge 0x5a2b1b
jmp 0x5a2b69
mov eax, dword [esp]
add eax, 1
cmp edi, 4
jl 0x5a2b69
mov ecx, esi
sub ecx, ebx
nop
movzx edx, byte [ebx]
cmp byte [ebp + edx], 0
jne 0x5a2b9f
movzx esi, byte [ebx + 1]
cmp byte [ebp + esi], 0
jne 0x5a2bb9
movzx edx, byte [ebx + 2]
cmp byte [ebp + edx], 0
jne 0x5a2bd2
movzx edx, byte [ebx + 3]
cmp byte [ebp + edx], 0
jne 0x5a2bef
mov edx, dword [ebx]
mov dword [eax], edx
add eax, 4
add ebx, 4
add ecx, 0xfffffffc
cmp ecx, 3
jg 0x5a2b20
mov edi, ebx
mov edx, dword [esp + 8]
cmp edx, ebx
jbe 0x5a33f1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edi]
cmp byte [ebp + ecx], 0
jne 0x5a2def
add edi, 1
mov byte [eax], cl
add eax, 1
cmp edx, edi
jne 0x5a2b80
jmp 0x5a33f1
mov edi, ebx
jmp 0x5a2def
mov edi, dword [esp + 0xc]
jmp 0x5a2def
mov eax, dword [esp]
add eax, ecx
add eax, 1
add ebx, ecx
mov byte [eax], dl
add eax, 1
add ebx, 1
mov edi, ebx
jmp 0x5a2def
mov eax, dword [esp]
add eax, ecx
add eax, 1
add ebx, ecx
movzx ecx, word [ebx]
mov word [eax], cx
add eax, 2
add ebx, 2
mov edi, ebx
jmp 0x5a2def
mov eax, dword [esp]
add eax, ecx
add eax, 1
add ebx, ecx
mov cl, byte [ebx + 2]
mov byte [eax + 2], cl
movzx ecx, word [ebx]
mov word [eax], cx
add eax, 3
add ebx, 3
mov edi, ebx
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 4
mov eax, dword [ebx + ecx]
mov edx, dword [esp]
mov dword [edx + ecx + 1], eax
lea eax, [edx + ecx]
add eax, 5
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 5
mov al, byte [ebx + ecx + 4]
mov edx, dword [esp]
mov byte [edx + ecx + 5], al
mov eax, dword [ebx + ecx]
mov dword [edx + ecx + 1], eax
lea eax, [edx + ecx]
add eax, 6
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 6
movzx eax, word [ebx + ecx + 4]
mov edx, dword [esp]
mov word [edx + ecx + 5], ax
mov eax, dword [ebx + ecx]
mov dword [edx + ecx + 1], eax
lea eax, [edx + ecx]
add eax, 7
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 7
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 3]
mov esi, dword [esp]
mov dword [esi + ecx + 4], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 8
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 8
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov esi, dword [esp]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 9
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 9
mov al, byte [ebx + ecx + 8]
mov esi, dword [esp]
mov byte [esi + ecx + 9], al
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0xa
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 0xa
movzx eax, word [ebx + ecx + 8]
mov esi, dword [esp]
mov word [esi + ecx + 9], ax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0xb
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 0xb
mov eax, dword [ebx + ecx + 7]
mov esi, dword [esp]
mov dword [esi + ecx + 8], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0xc
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 0xc
mov eax, dword [ebx + ecx + 8]
mov esi, dword [esp]
mov dword [esi + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0xd
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 0xd
mov al, byte [ebx + ecx + 0xc]
mov esi, dword [esp]
mov byte [esi + ecx + 0xd], al
mov eax, dword [ebx + ecx + 8]
mov dword [esi + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0xe
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 0xe
movzx eax, word [ebx + ecx + 0xc]
mov esi, dword [esp]
mov word [esi + ecx + 0xd], ax
mov eax, dword [ebx + ecx + 8]
mov dword [esi + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0xf
jmp 0x5a2def
lea edi, [ebx + ecx]
add edi, 0xf
mov eax, dword [ebx + ecx + 0xb]
mov esi, dword [esp]
mov dword [esi + ecx + 0xc], eax
mov eax, dword [ebx + ecx + 8]
mov dword [esi + ecx + 9], eax
mov eax, dword [ebx + ecx]
mov edx, dword [ebx + ecx + 4]
mov dword [esi + ecx + 5], edx
mov dword [esi + ecx + 1], eax
lea eax, [esi + ecx]
add eax, 0x10
mov esi, eax
jmp 0x5a2e3f
push 1
lea eax, [esp + 0x6a]
push eax
push 1
mov edi, dword [esp + 0x18]
push edi
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_MultiByteToWideChar_1]
mov esi, dword [esp]
mov word [esi], 0x755c
movzx eax, word [esp + 0x66]
movzx ecx, al
shr eax, 8
movzx eax, word [eax + eax + 0x6033d8]
mov word [esi + 2], ax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [esi + 4], ax
add esi, 6
add edi, 1
mov dword [esp], esi
lea ecx, [edi + 4]
mov esi, dword [esp + 8]
cmp ecx, esi
mov dword [esp + 0xc], edi
ja 0x5a31fc
movzx eax, byte [edi]
movzx edx, al
movzx ebx, byte [ebp + edx]
cmp bl, 0xc
ja case.default.0x5a2e6c
movzx edi, bl
jmp dword [edi*4 + 0x604ad8]
mov ecx, dword [esp + 0xcc]
test cl, 2
mov esi, dword [esp]
mov edi, dword [esp + 0xc]
jne 0x5a2faf
jmp 0x5a319d
mov edi, dword [esp + 0xc]
cmp byte [edi + 1], 0
mov esi, dword [esp]
je 0x5a319d
movzx eax, word [edi]
mov word [esi], ax
jmp 0x5a2ed4
mov edi, dword [esp + 0xc]
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x5a319a
mov ecx, eax
and ecx, 0x1e
mov esi, dword [esp]
je 0x5a319d
mov word [esi], ax
add esi, 2
add edi, 2
jmp 0x5a2e3f
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x5a319a
mov edx, eax
and edx, 0x3007
je 0x5a319a
test al, 4
mov esi, dword [esp]
je 0x5a2f1c
mov edx, eax
and edx, 0x3003
jne 0x5a319d
mov dword [esi], eax
add esi, 4
mov edi, ecx
jmp 0x5a2e3f
cmp ecx, esi
ja 0x5a323e
mov edi, dword [esp + 0xc]
mov ecx, dword [edi]
mov edx, ecx
and edx, 0xc0c0f0
mov eax, ecx
cmp edx, 0x8080e0
jne 0x5a319a
mov edx, ecx
and edx, 0x200f
mov esi, dword [esp]
je 0x5a319d
cmp edx, 0x200d
je 0x5a319d
mov dword [esi], ecx
add esi, 3
add edi, 3
jmp 0x5a2e3f
mov esi, dword [esp + 0xc]
movzx ecx, word [esi]
movzx eax, byte [esi + 2]
mov edi, eax
shl edi, 0x10
or edi, ecx
and edi, 0xc0c0f0
cmp edi, 0x8080e0
mov edi, esi
mov esi, dword [esp]
jne 0x5a2faf
and ecx, 0x200f
je 0x5a2faf
cmp ecx, 0x200d
jne 0x5a31ba
mov eax, dword [esp + 0xcc]
test al, 0x20
je 0x5a57b3
mov word [esi], 0x755c
mov dword [esi + 2], 0x44464646
jmp 0x5a2e39
mov esi, dword [esp]
mov dword [esi], 0x3030755c
mov edi, dword [esp + 0xc]
movzx eax, byte [edi]
movzx eax, word [eax + eax + 0x6033d8]
jmp 0x5a2e35
movzx eax, word [edx + edx + str._________________b_t_n___f_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov esi, dword [esp]
mov word [esi], ax
add esi, 2
mov edi, dword [esp + 0xc]
add edi, 1
jmp 0x5a2e3f
mov edi, dword [esp + 0xc]
mov edx, dword [edi]
mov ebx, edx
and ebx, 0xc0c0c0f8
cmp ebx, 0x808080f0
mov esi, dword [esp]
jne 0x5a2faf
mov ebx, edx
and ebx, 0x3007
je 0x5a2faf
test dl, 4
je 0x5a303d
and edx, 0x3003
jne 0x5a2faf
and al, 7
movzx eax, al
shl eax, 0x12
movzx edx, byte [edi + 1]
and edx, 0x3f
shl edx, 0xc
or edx, eax
mov eax, edi
movzx edi, byte [edi + 2]
and edi, 0x3f
mov ebx, edi
shl ebx, 6
or ebx, edx
movzx edx, byte [eax + 3]
and edx, 0x3f
lea eax, [ebx + edx]
add edx, ebx
add edx, 0xffff0000
mov esi, edx
shr esi, 0xa
add esi, 0xd800
mov ebx, dword [esp]
mov word [ebx], 0x755c
shr esi, 8
movzx esi, word [esi + esi + 0x6033d8]
mov ebx, dword [esp]
mov word [ebx + 2], si
shr edx, 9
and edx, 0x1fe
movzx edx, word [edx + 0x6033d8]
mov esi, dword [esp]
mov word [esi + 4], dx
mov edx, dword [esp]
mov word [edx + 6], 0x755c
shr edi, 1
and edi, 6
movzx edx, word [edi + 0x603590]
mov esi, dword [esp]
mov word [esi + 8], dx
movzx eax, al
movzx eax, word [eax + eax + 0x6033d8]
mov word [esi + 0xa], ax
add esi, 0xc
mov edi, ecx
jmp 0x5a2e3f
mov edi, dword [esp + 0xc]
movzx ecx, word [edi]
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
mov esi, dword [esp]
jne 0x5a2faf
and ecx, 0x1e
je 0x5a2faf
and al, 0x1f
movzx ecx, al
mov eax, ecx
shl eax, 6
movzx edx, byte [edi + 1]
and edx, 0x3f
mov word [esi], 0x755c
shr ecx, 2
movzx ecx, word [ecx + ecx + 0x6033d8]
mov word [esi + 2], cx
movzx eax, al
or eax, edx
movzx eax, word [eax + eax + 0x6033d8]
jmp 0x5a318b
mov edi, dword [esp + 0xc]
cmp byte [edi + 1], 0
mov esi, dword [esp]
je 0x5a2faf
push 1
lea eax, [esp + 0x6a]
push eax
push 2
push edi
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_MultiByteToWideChar_1]
mov word [esi], 0x755c
movzx eax, word [esp + 0x66]
movzx ecx, al
shr eax, 8
movzx eax, word [eax + eax + 0x6033d8]
mov word [esi + 2], ax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [esi + 4], ax
add esi, 6
add edi, 2
jmp 0x5a2e3f
mov esi, dword [esp]
mov ecx, dword [esp + 0xcc]
test cl, 0x20
je 0x5a57b3
add edi, 1
mov byte [esi], al
add esi, 1
jmp 0x5a2e3f
shl edx, 0xc
movzx ecx, byte [edi + 1]
and ecx, 0x3f
shl ecx, 6
and eax, 0x3f
mov word [esi], 0x755c
or edx, ecx
movzx edx, dh
movzx edx, word [edx + edx + 0x6033d8]
mov word [esi + 2], dx
movzx ecx, cl
or ecx, eax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [esi + 4], ax
add esi, 6
add edi, 3
jmp 0x5a2e3f
mov eax, edi
mov edi, esi
sub edi, eax
je case.default.0x5a2e6c
movzx eax, byte [eax]
movzx edx, al
movzx ebx, byte [ebp + edx]
mov bh, 2
cmp bl, 0xa
je 0x5a322a
cmp bl, 0xc
je 0x5a322a
mov bh, bl
cmp bl, 0xb
jne 0x5a3228
mov bh, 1
shr bh, 1
movzx ebp, bh
cmp edi, ebp
mov ebp, dword [esp + 4]
jge 0x5a2e60
jmp case.0x5a2e6c.1
mov eax, dword [esp + 0xc]
movzx edx, word [eax]
mov ebx, eax
movzx ecx, byte [eax + 2]
shl ecx, 0x10
or ecx, edx
mov edi, ecx
and edi, 0xc0c0f0
mov eax, edx
cmp edi, 0x8080e0
jne 0x5a3280
and edx, 0x200f
mov esi, dword [esp]
je 0x5a3283
cmp edx, 0x200d
mov edi, ebx
je 0x5a319d
jmp 0x5a2f69
mov esi, dword [esp]
mov edi, ebx
jmp 0x5a319d
mov ebx, dword [esp + 0xc]
add ebx, 1
mov ecx, dword [esp]
mov byte [ecx], al
jmp 0x5a2997
push 0
push 0x5f5e100
push ebp
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, edx
mov edx, 0xfa0a1f00
mul edx
add eax, ebx
mov dword [esp + 8], eax
mov eax, 0x6fc10000
cmp ebx, eax
mov eax, ebp
mov edx, 0x2386f2
sbb eax, edx
jae 0x5a3456
cmp esi, 0x63
ja 0x5a39f6
xor eax, eax
cmp esi, 0xa
setb al
movzx ecx, word [eax + esi*2 + 0x6035d8]
mov word [edi], cx
sub edi, eax
add edi, 2
mov dword [esp], edi
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 4]
jmp 0x5a4477
mov dword [esi], 0x302e30
add esi, 3
mov edi, esi
jmp 0x5a421b
lea eax, [edi + 0x10]
cmp eax, dword [esp + 0x24]
jae 0x5a4fc7
mov ebx, dword [esp + 0x14]
mov eax, 0x65757274
add eax, 0x6f702fa
mov ecx, 0xa2c
mov dword [edi + 4], ecx
mov dword [edi], eax
add edi, 5
jmp 0x5a256c
shld esi, ecx, 0x18
cmp esi, 0x2aaaaaa6
ja 0x5a850d
mov ebx, dword [edx + 8]
lea eax, [edi + esi]
add eax, 2
cmp eax, dword [esp + 0x24]
jae 0x5a5003
mov ecx, edi
mov edi, edx
push esi
push ebx
mov ebx, esi
mov esi, ecx
push ecx
call fcn.005c50c0
add esp, 0xc
mov byte [esi + ebx], 0x2c
lea eax, [esi + ebx]
add eax, 1
mov edx, edi
mov edi, eax
mov ebx, dword [esp + 0x14]
jmp 0x5a256c
cmp ecx, 7
jb 0x5a33f1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx + eax]
mov byte [edi + eax], cl
movzx ecx, byte [ebx + eax + 1]
mov byte [edi + eax + 1], cl
movzx ecx, byte [ebx + eax + 2]
mov byte [edi + eax + 2], cl
movzx ecx, byte [ebx + eax + 3]
mov byte [edi + eax + 3], cl
movzx ecx, byte [ebx + eax + 4]
mov byte [edi + eax + 4], cl
movzx ecx, byte [ebx + eax + 5]
mov byte [edi + eax + 5], cl
movzx ecx, byte [ebx + eax + 6]
mov byte [edi + eax + 6], cl
movzx ecx, byte [ebx + eax + 7]
mov byte [edi + eax + 7], cl
add eax, 8
cmp esi, eax
jne 0x5a33a0
add edi, eax
mov eax, edi
mov ebx, dword [esp + 0x14]
mov edx, ebx
not edx
mov byte [eax], 0x22
mov cl, 0x2c
test dword [esp + 0x20], edx
je 0x5a2560
mov cl, 0x3a
jmp 0x5a2560
cmp ebx, 0x270f
ja 0x5a3a41
imul eax, ebx, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, ebx
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [edi], ax
sub edi, ebx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
add edi, 4
jmp 0x5a421b
mov dword [esp], edi
push 0xe8
push 0xd4a51000
push ebp
push ebx
call fcn.005c5870
mov ecx, eax
mov ebx, edx
imul eax, eax, 0xffffd8f0
add eax, esi
mov dword [esp + 0xc], eax
mov eax, ecx
cmp ecx, 0xf423f
ja 0x5a3aab
mov edx, 0x68db9
mul edx
imul eax, ebx, 0x68db9
add eax, edx
imul edx, eax, 0xffffd8f0
add edx, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, ecx, 0xffffff9c
add esi, edx
xor edx, edx
cmp eax, 0xa
setb dl
movzx eax, word [edx + eax*2 + 0x6035d8]
mov edi, dword [esp]
mov word [edi], ax
sub edi, edx
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
add edi, 6
mov esi, 0x68db8bb
mov ebp, dword [esp + 4]
jmp 0x5a3b2e
bsf edx, eax
mov eax, 0x433
sub eax, ecx
cmp eax, edx
jbe 0x5a39d6
mov dword [esp], edi
or esi, dword [esp + 0x1c]
sete dl
cmp ecx, 1
seta dh
and dh, dl
imul edi, ecx, 0x4d105
mov dword [esp + 0xa8], 0
mov eax, 0xfffdff5b
mov byte [esp + 0x60], dh
test dh, dh
jne 0x5a3532
xor eax, eax
mov edx, dword [esp + 8]
lea esi, [edx*4 + 2]
mov dword [esp + 0x4c], edi
mov ebp, eax
mov dword [esp + 0x44], eax
lea ebp, [edi + eax]
add ebp, 0xebc64801
sar ebp, 0x14
imul edi, ebp, 0xfffcad95
shr edi, 0x10
add ecx, edi
add cl, 0xce
mov edi, esi
shl edi, cl
shld ebx, edx, 2
mov dword [esp + 0x5c], 0
test cl, 0x20
jne 0x5a357a
mov dword [esp + 0x5c], edi
mov dword [esp + 0x1c], edi
mov edi, ebx
shld edi, esi, cl
test cl, 0x20
jne 0x5a358c
mov dword [esp + 0x1c], edi
mov esi, dword [esp + 8]
lea esi, [esi*4]
mov edx, esi
shl edx, cl
mov edi, 0
test cl, 0x20
jne 0x5a35a7
mov edi, edx
mov dword [esp + 0x74], edi
mov edi, ebx
shld edi, esi, cl
test cl, 0x20
jne 0x5a35b7
mov edx, edi
movzx eax, byte [esp + 0x60]
mov esi, dword [esp + 8]
lea eax, [eax + esi*4]
add eax, 0xfffffffe
adc ebx, 0xffffffff
mov edi, eax
shl edi, cl
mov esi, 0
test cl, 0x20
jne 0x5a35d9
mov esi, edi
mov dword [esp + 8], esi
mov dword [esp + 0x34], edx
shld ebx, eax, cl
test cl, 0x20
mov edx, dword [esp + 0x4c]
jne 0x5a35ef
mov edi, ebx
mov dword [esp + 0x48], ebp
mov eax, ebp
shl eax, 4
mov ebp, 0x6014e8
sub ebp, eax
mov ecx, 0x6014f0
sub ecx, eax
mov eax, dword [esp + 0x44]
add edx, eax
add edx, 0xef364801
xor eax, eax
cmp edx, 0x37fffff
seta al
add eax, dword [ecx]
mov ecx, dword [ecx + 4]
adc ecx, 0
mov dword [esp + 0x28], ecx
mov esi, eax
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 8]
mul ebx
mov dword [esp + 0x44], edx
mov eax, ecx
mul ebx
mov dword [esp + 0x2c], edx
mov ebx, eax
mov eax, esi
mul edi
mov dword [esp + 0x4c], edx
mov edx, edi
mov dword [esp + 0x68], edi
mov edi, eax
mov eax, ecx
mul edx
mov ecx, eax
mov esi, edx
add ebx, dword [esp + 0x44]
adc ecx, dword [esp + 0x2c]
adc esi, 0
add ebx, edi
adc ecx, dword [esp + 0x4c]
adc esi, 0
mov edi, dword [ebp]
mov eax, edi
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 8]
mul ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], edx
mov ebp, dword [ebp + 4]
mov dword [esp + 0x30], ebp
mov eax, ebp
mul ebx
mov dword [esp + 0x88], edx
mov ebx, eax
mov eax, edi
mov edi, dword [esp + 0x68]
mul edi
mov dword [esp + 8], edx
mov dword [esp + 0x84], eax
mov eax, ebp
mul edi
add ebx, dword [esp + 0x44]
adc eax, dword [esp + 0x88]
adc edx, 0
add ebx, dword [esp + 0x84]
adc eax, dword [esp + 8]
adc edx, 0
mov edi, dword [esp + 0x4c]
add edi, ecx
adc ebx, esi
setb byte [esp + 8]
cmp edi, ecx
mov ecx, ebx
sbb ecx, esi
setb cl
or cl, byte [esp + 8]
movzx ebp, cl
add ebp, eax
adc edx, 0
mov dword [esp + 0x4c], edx
mov eax, 1
cmp eax, edi
mov eax, 0
sbb eax, ebx
setb byte [esp + 8]
mov esi, dword [esp + 0x60]
mov eax, esi
mov ecx, dword [esp + 0x74]
mul ecx
mov dword [esp + 0x88], edx
mov edi, dword [esp + 0x28]
mov eax, edi
mul ecx
mov dword [esp + 0x84], edx
mov ebx, eax
mov eax, esi
mov esi, dword [esp + 0x34]
mul esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x90], eax
mov eax, edi
mul esi
mov edi, eax
movzx eax, byte [esp + 8]
or eax, ebp
mov dword [esp + 0x44], eax
add ebx, dword [esp + 0x88]
adc edi, dword [esp + 0x84]
adc edx, 0
add ebx, dword [esp + 0x90]
adc edi, dword [esp + 0x68]
adc edx, 0
mov dword [esp + 8], edx
mov esi, dword [esp + 0x2c]
mov eax, esi
mul ecx
mov dword [esp + 0x68], edx
mov ebx, eax
mov ebp, dword [esp + 0x30]
mov eax, ebp
mul ecx
mov dword [esp + 0x88], edx
mov ecx, eax
mov eax, esi
mov esi, dword [esp + 0x34]
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x84], eax
mov eax, ebp
mul esi
add ecx, dword [esp + 0x68]
adc eax, dword [esp + 0x88]
adc edx, 0
add ecx, dword [esp + 0x84]
adc eax, dword [esp + 0x74]
adc edx, 0
mov esi, edx
add ebx, edi
mov ebp, dword [esp + 8]
adc ecx, ebp
setb dl
cmp ebx, edi
mov edi, ecx
sbb edi, ebp
setb dh
or dh, dl
movzx ebp, dh
add ebp, eax
adc esi, 0
mov dword [esp + 8], esi
mov eax, 1
cmp eax, ebx
mov eax, 0
sbb eax, ecx
setb byte [esp + 0x34]
mov ecx, dword [esp + 0x60]
mov eax, ecx
mov esi, dword [esp + 0x5c]
mul esi
mov dword [esp + 0x68], edx
mov ebx, dword [esp + 0x28]
mov eax, ebx
mul esi
mov dword [esp + 0x88], edx
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mul ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x84], eax
mov eax, ebx
mul ecx
mov ebx, eax
mov ecx, edx
movzx eax, byte [esp + 0x34]
mov dword [esp + 0x34], ebp
or eax, ebp
mov dword [esp + 0x60], eax
add edi, dword [esp + 0x68]
adc ebx, dword [esp + 0x88]
adc ecx, 0
add edi, dword [esp + 0x84]
adc ebx, dword [esp + 0x74]
adc ecx, 0
mov ebp, dword [esp + 0x2c]
mov eax, ebp
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x30]
mov eax, edi
mul esi
mov dword [esp + 0x5c], edx
mov esi, eax
mov eax, ebp
mov ebp, dword [esp + 0x1c]
mul ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x68], eax
mov eax, edi
mul ebp
mov ebp, edx
add esi, dword [esp + 0x74]
adc eax, dword [esp + 0x5c]
adc ebp, 0
add esi, dword [esp + 0x68]
adc eax, dword [esp + 0x2c]
adc ebp, 0
mov edi, dword [esp + 0x28]
add edi, ebx
adc esi, ecx
setb dl
cmp edi, ebx
mov ebx, esi
sbb ebx, ecx
setb cl
or cl, dl
movzx ecx, cl
add ecx, eax
adc ebp, 0
mov eax, 1
cmp eax, edi
sbb dword [esp + 0xa8], esi
setb al
movzx esi, al
or esi, ecx
mov eax, dword [esp + 0xc]
and eax, 1
add dword [esp + 0x44], eax
adc dword [esp + 0x4c], 0
sub esi, eax
sbb ebp, 0
cmp dword [esp + 0x60], 0x28
mov eax, dword [esp + 8]
sbb eax, 0
jb 0x5a3952
push 0
push 0x28
push dword [esp + 0x10]
push dword [esp + 0x40]
call fcn.005c5870
mov edi, edx
mov dword [esp + 0x1c], eax
mov edx, 0x28
mul edx
lea ebx, [edi*8]
lea ebx, [ebx + ebx*4]
mov ecx, ebp
lea ebp, [edx + ebx]
cmp eax, dword [esp + 0x44]
sbb ebp, dword [esp + 0x4c]
mov ebp, ecx
setb cl
add eax, 0x28
adc ebx, edx
cmp esi, eax
mov edx, ebp
sbb edx, ebx
setae dl
xor dl, cl
je 0x5a3bbe
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x34]
and eax, 0xfffffffc
mov edx, eax
add edx, 4
mov ebx, dword [esp + 8]
mov ebp, ebx
adc ebp, 0
lea ecx, [eax + 2]
mov edi, dword [esp + 0x60]
cmp ecx, edi
sbb ebx, ebx
mov ebx, 1
jb 0x5a3998
xor edi, ecx
mov ecx, dword [esp + 8]
xor ecx, ecx
or ecx, edi
sete cl
mov ebx, dword [esp + 0x34]
mov ch, bl
shr ch, 2
and ch, cl
movzx ebx, ch
mov ecx, dword [esp + 8]
shrd dword [esp + 0x34], ecx, 2
mov edi, ecx
shr edi, 2
cmp esi, edx
sbb dword [esp + 0xc], ebp
setae dl
cmp eax, dword [esp + 0x44]
sbb ecx, dword [esp + 0x4c]
setb al
xor al, dl
mov ecx, dword [esp + 0x48]
jne 0x5a39c6
movzx ebx, dl
mov ebp, dword [esp + 0x34]
add ebp, ebx
mov ebx, ebp
adc edi, 0
jmp 0x5a3bd8
mov ecx, eax
shrd dword [esp + 8], ebx, cl
shr ebx, cl
xor ecx, ecx
test al, 0x20
jne 0x5a40b1
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 8]
jmp 0x5a40b9
cmp esi, 0x270f
mov ebp, dword [esp + 4]
ja 0x5a413c
imul eax, esi, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, esi
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [edi], ax
sub edi, ebx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
add edi, 4
jmp 0x5a4470
mov esi, ebx
mov eax, ebx
cmp ebx, 0xf423f
ja 0x5a41a4
mov ecx, 0x68db9
mul ecx
imul eax, ebp, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, ebx
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [edi], ax
sub edi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
add edi, 6
jmp 0x5a421b
mov edx, 0x68db8bb
mul edx
imul eax, ebx, 0x68db8bb
add eax, edx
shr eax, 8
imul edx, eax, 0xffffd8f0
add edx, ecx
imul ecx, eax, 0x147b
mov esi, ecx
shr esi, 0x13
imul ebx, edx, 0x147b
shr ebx, 0x13
imul ebp, esi, 0xffffff9c
add ebp, eax
imul eax, ebx, 0xffffff9c
add eax, edx
xor edx, edx
cmp ecx, 0x500000
setb dl
movzx ecx, word [edx + esi*2 + 0x6035d8]
mov esi, 0x68db8bb
mov edi, dword [esp]
mov word [edi], cx
sub edi, edx
movzx ecx, word [ebp + ebp + 0x6035d8]
mov ebp, dword [esp + 4]
mov word [edi + 2], cx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [edi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov edx, dword [esp + 0xc]
imul eax, edx, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
add ecx, edx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi], ax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi + 2], ax
mov ecx, dword [esp + 8]
mov eax, ecx
mul esi
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul ebx, ecx, 0xffffff9c
add ebx, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 6], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 8], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 0xa], ax
add edi, 0xc
jmp 0x5a486c
cmp esi, eax
sbb ebp, ebx
setae al
movzx eax, al
mov ebx, dword [esp + 0x1c]
add ebx, eax
adc edi, 0
mov ecx, dword [esp + 0x48]
add ecx, 1
mov eax, 0x6fc10000
cmp ebx, eax
mov eax, edi
mov edx, 0x2386f2
sbb eax, edx
setb al
mov edx, 0xa4c67fff
add edx, 1
mov esi, 0x38d7e
adc esi, 0
cmp ebx, edx
mov edx, edi
sbb edx, esi
movzx esi, al
setb al
movzx ebp, al
lea eax, [esi + ebp]
mov edx, ecx
sub edx, eax
lea eax, [edx + 0x11]
add edx, 0x16
cmp edx, 0x1a
mov dword [esp + 0xc], eax
ja 0x5a3db2
test eax, eax
jle 0x5a3f12
mov dword [esp + 0x48], ecx
xor esi, 0x11
mov dword [esp + 0x1c], esi
neg ebp
mov dword [esp + 0x34], ebp
push 0
push 0x5f5e100
push edi
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov ebp, eax
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
add ebp, ebx
mov dword [esp + 0x4c], ebp
shr edi, 0xd
imul eax, edi, 0xffffd8f0
add eax, esi
mov dword [esp + 8], eax
mov eax, edi
mov ecx, 0x28f5d
mul ecx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul ebp, ecx, 0xffffff9c
add ebp, edx
imul ebx, edx, 0xffffff9c
add ebx, edi
mov edx, ecx
add dl, 0x30
mov esi, dword [esp + 0x50]
mov dword [esi], 0x30303030
mov dword [esi + 0x14], 0x30303030
mov dword [esi + 0x10], 0x30303030
mov dword [esi + 0xc], 0x30303030
mov dword [esi + 8], 0x30303030
mov dword [esi + 4], 0x30303030
mov byte [esi + 1], dl
cmp ebp, 0xa
setb al
xor edx, edx
test ecx, ecx
setne dl
sete cl
and cl, al
movzx eax, cl
movzx ecx, word [eax + ebp*2 + 0x6035d8]
mov word [esi + edx + 1], cx
add esi, edx
add esi, 1
sub esi, eax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 2], ax
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x5a422c
mov eax, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], esi
mov esi, ecx
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, edi, 0xffffff9c
mov ebp, eax
mov ecx, 0x68db8bb
mul ecx
add ebx, esi
mov esi, dword [esp + 0x44]
shr edx, 8
imul ecx, edx, 0x147b
shr ecx, 0x13
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
imul edi, ecx, 0xffffff9c
add edi, edx
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 6], ax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 8], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xa], ax
imul eax, edx, 0xffffd8f0
add eax, ebp
je 0x5a434f
imul ecx, eax, 0x147b
shr ecx, 0x13
imul edi, ecx, 0xffffff9c
add edi, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 0xc], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xe], ax
mov eax, 0x10
jmp 0x5a4354
push 0
push 0x5f5e100
push edi
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
add eax, ebx
mov dword [esp], eax
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
shr edi, 0xd
imul ebx, edi, 0xffffd8f0
mov eax, edi
mov ecx, 0x28f5d
mul ecx
add ebx, esi
mov dword [esp + 8], ebx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul ebp, ecx, 0xffffff9c
add ebp, edx
imul eax, edx, 0xffffff9c
add eax, edi
mov ebx, ecx
add bl, 0x30
xor edx, edx
test ecx, ecx
sete dl
mov esi, 2
sub esi, edx
mov ecx, edx
neg ecx
cmp ebp, 0xa
setb bh
and bh, dl
mov edi, dword [esp + 0x50]
mov byte [edi + 1], bl
movzx edx, bh
mov ebx, edi
movzx edi, word [edx + ebp*2 + 0x6035d8]
mov word [ebx + ecx + 2], di
sub esi, edx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [ebx + esi + 2], cx
mov ecx, dword [esp]
test ecx, ecx
je 0x5a405d
mov edx, ecx
mov edi, dword [esp + 8]
imul ecx, edi, 0x147b
shr ecx, 0x13
imul ebp, ecx, 0xffffff9c
mov eax, edx
mov edx, 0x68db8bb
mul edx
add ebp, edi
shr edx, 8
imul eax, edx, 0x147b
shr eax, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [ebx + esi + 4], cx
imul ecx, eax, 0xffffff9c
add ecx, edx
movzx edi, word [ebp + ebp + 0x6035d8]
mov word [ebx + esi + 6], di
movzx edi, word [eax + eax + 0x6035d8]
mov word [ebx + esi + 8], di
movzx edi, word [ecx + ecx + 0x6035d8]
mov word [ebx + esi + 0xa], di
imul edx, edx, 0xffffd8f0
add edx, dword [esp]
mov ebp, dword [esp + 4]
je 0x5a4280
imul eax, edx, 0x147b
shr eax, 0x13
imul edi, eax, 0xffffff9c
mov dword [esp], edi
mov ecx, ebx
movzx ebx, word [eax + eax + 0x6035d8]
mov word [ecx + esi + 0xc], bx
add edi, edx
movzx edi, word [edi + edi + 0x6035d8]
mov word [ecx + esi + 0xe], di
je 0x5a4294
mov eax, dword [esp]
movzx ecx, byte [eax + edx + 0x6036a0]
jmp 0x5a429e
mov ebp, dword [esp + 0x50]
sub ebp, eax
push 0
push 0x5f5e100
push edi
push ebx
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
add eax, ebx
mov dword [esp + 8], eax
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
shr edi, 0xd
mov eax, edi
mov ecx, 0x28f5d
mul ecx
imul ecx, edi, 0xffffd8f0
add ecx, esi
mov dword [esp], ecx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul esi, ecx, 0xffffff9c
add esi, edx
imul eax, edx, 0xffffff9c
add eax, edi
mov ebx, ecx
add bl, 0x30
cmp esi, 0xa
setb bh
xor edx, edx
test ecx, ecx
mov byte [ebp + 2], bl
setne dl
sete cl
and cl, bh
movzx ecx, cl
movzx edi, word [ecx + esi*2 + 0x6035d8]
mov word [ebp + edx + 2], di
lea edi, [edx + ebp]
add edi, 2
mov ebp, dword [esp + 8]
sub edi, ecx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [edi + 2], cx
test ebp, ebp
je 0x5a4383
mov esi, dword [esp]
imul ecx, esi, 0x147b
shr ecx, 0x13
mov ebx, edi
imul edi, ecx, 0xffffff9c
mov eax, ebp
mov edx, 0x68db8bb
mul edx
add edi, esi
shr edx, 8
imul eax, edx, 0x147b
shr eax, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [ebx + 4], cx
imul esi, eax, 0xffffff9c
add esi, edx
movzx ecx, word [edi + edi + 0x6035d8]
mov edi, ebx
mov word [ebx + 6], cx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [ebx + 8], cx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [ebx + 0xa], cx
imul ecx, edx, 0xffffd8f0
add ecx, ebp
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 0x14]
je 0x5a4527
imul eax, ecx, 0x147b
shr eax, 0x13
imul esi, eax, 0xffffff9c
add esi, ecx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [edi + 0xc], cx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [edi + 0xe], cx
mov ecx, 0x10
jmp 0x5a452c
cmp dword [esp + 8], 0
je 0x5a43dc
mov ebp, dword [esp + 8]
imul eax, ebp, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx edi, word [eax + eax + 0x6035d8]
mov word [ebx + esi + 4], di
add edx, ebp
movzx edx, word [edx + edx + 0x6035d8]
mov word [ebx + esi + 6], dx
mov ebx, dword [esp + 0x14]
je 0x5a44eb
mov eax, dword [esp + 8]
movzx ecx, byte [ecx + eax + 0x6036a0]
jmp 0x5a44f5
mov esi, ebx
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov eax, 0x5f5e0ff
cmp eax, esi
sbb ecx, ebx
jb 0x5a40f2
cmp esi, 0x63
ja 0x5a42ae
xor eax, eax
cmp esi, 0xa
setb al
movzx ecx, word [eax + esi*2 + 0x6035d8]
mov edi, dword [esp + 0x50]
mov word [edi], cx
sub edi, eax
add edi, 2
mov ebx, dword [esp + 0x14]
jmp 0x5a46ab
push 0
push 0x5f5e100
push ebx
push esi
mov edi, esi
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov ecx, eax
add ecx, edi
cmp esi, 0x63
ja 0x5a4301
xor eax, eax
cmp esi, 0xa
setb al
movzx edx, word [eax + esi*2 + 0x6035d8]
mov edi, dword [esp + 0x50]
mov word [edi], dx
sub edi, eax
add edi, 2
mov dword [esp], edi
jmp 0x5a4634
mov eax, esi
cmp esi, 0xf423f
ja 0x5a43ef
mov edx, 0x68db9
mul edx
imul eax, ecx, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [edi], ax
sub edi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
add edi, 6
jmp 0x5a4470
mov ecx, 0x68db8bb
mul ecx
imul eax, ebp, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, ebx
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul ebx, ecx, 0x147b
shr ebx, 0x13
imul ebp, esi, 0xffffff9c
add ebp, eax
imul eax, ebx, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov word [edi], dx
sub edi, ecx
movzx ecx, word [ebp + ebp + 0x6035d8]
mov word [edi + 2], cx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [edi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 4]
jmp 0x5a4880
cmp dword [esp + 8], 0
je 0x5a4557
mov eax, dword [esp + 8]
mov ebx, esi
mov esi, eax
imul eax, eax, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx edi, word [eax + eax + 0x6035d8]
mov word [ebx + 4], di
add edx, esi
mov esi, ebx
movzx edx, word [edx + edx + 0x6035d8]
mov word [ebx + 6], dx
je 0x5a46b8
mov eax, dword [esp + 8]
movzx ecx, byte [ecx + eax + 0x6036a0]
jmp 0x5a46c2
test ecx, ecx
je 0x5a4505
movzx ecx, byte [ecx + 0x6036a0]
jmp 0x5a450f
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov ebx, dword [esp + 0x14]
mov eax, 0x10
sub eax, ecx
jmp 0x5a46f5
cmp esi, 0x270f
ja 0x5a4566
imul eax, esi, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, esi
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov edi, dword [esp + 0x50]
mov word [edi], ax
sub edi, ebx
movzx eax, word [edx + edx + 0x6035d8]
mov edx, dword [esp + 0x18]
mov word [edi + 2], ax
add edi, 4
mov ebx, dword [esp + 0x14]
jmp 0x5a46ab
cmp esi, 0x270f
ja 0x5a45d2
imul eax, esi, 0x147b
mov edx, eax
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, esi
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + edx*2 + 0x6035d8]
mov edx, dword [esp + 0x50]
mov word [edx], ax
sub edx, ebx
movzx eax, word [edi + edi + 0x6035d8]
mov word [edx + 2], ax
add edx, 4
mov dword [esp], edx
jmp 0x5a4634
mov eax, 0xc
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
test edi, edi
je 0x5a4372
movzx ecx, byte [edi + 0x6036a0]
sub eax, ecx
jmp 0x5a47d9
movzx ecx, byte [ecx + 0x6036a0]
add ecx, 2
sub eax, ecx
jmp 0x5a47d9
cmp dword [esp], 0
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 0x14]
je 0x5a4787
mov ecx, dword [esp]
imul eax, ecx, 0x147b
shr eax, 0x13
imul edx, eax, 0xffffff9c
mov dword [esp + 8], edx
movzx esi, word [eax + eax + 0x6035d8]
mov word [edi + 4], si
add edx, ecx
movzx edx, word [edx + edx + 0x6035d8]
mov word [edi + 6], dx
je 0x5a479a
mov eax, dword [esp]
mov ecx, dword [esp + 8]
movzx eax, byte [ecx + eax + 0x6036a0]
jmp 0x5a47a4
test eax, eax
mov ebx, dword [esp + 0x14]
je 0x5a46da
xor ecx, ecx
jmp 0x5a46e1
mov edx, 0x68db8bb
mul edx
imul eax, ecx, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul esi, eax, 0x147b
mov dword [esp], esi
shr esi, 0x13
imul ebx, ecx, 0x147b
shr ebx, 0x13
imul edx, esi, 0xffffff9c
add edx, eax
mov dword [esp + 0xc], edx
imul eax, ebx, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp dword [esp], 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov word [edi], dx
sub edi, ecx
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [edi + 2], cx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [edi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov dword [esp], edi
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov eax, esi
mov ecx, 0x68db8bb
mul ecx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, ecx, 0xffffff9c
add edi, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov ecx, dword [esp]
mov word [ecx], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ecx + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ecx + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [ecx + 6], ax
add ecx, 8
mov edx, dword [esp + 0x18]
mov edi, ecx
jmp 0x5a4880
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov ebp, dword [esp + 4]
mov eax, 8
sub eax, ecx
jmp 0x5a46f5
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov ebx, dword [esp + 0x14]
mov eax, 0xc
sub eax, ecx
jmp 0x5a46f5
mov eax, dword [esp]
jmp 0x5a33f1
mov ecx, 0xc
mov edx, dword [esp + 0x18]
test esi, esi
je 0x5a4544
movzx eax, byte [esi + 0x6036a0]
mov esi, dword [esp + 0xc]
jmp 0x5a49aa
movzx eax, byte [eax + 0x6036a0]
add eax, 2
mov esi, dword [esp + 0xc]
jmp 0x5a49aa
test ebx, ebx
je 0x5a47b6
xor ecx, ecx
jmp 0x5a47bd
mov eax, esi
cmp esi, 0xf423f
ja 0x5a488b
mov ecx, 0x68db9
mul ecx
imul eax, ebx, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov edi, dword [esp + 0x50]
mov word [edi], ax
sub edi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
add edi, 6
jmp 0x5a4908
mov eax, esi
cmp esi, 0xf423f
ja 0x5a4915
mov edx, 0x68db9
mul edx
imul eax, edx, 0xffffd8f0
add eax, esi
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, esi, 0xffffff9c
add edi, eax
xor eax, eax
cmp edx, 0xa
setb al
movzx edx, word [eax + edx*2 + 0x6035d8]
mov ebx, dword [esp + 0x50]
mov word [ebx], dx
sub ebx, eax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebx + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebx + 4], ax
add ebx, 6
mov dword [esp], ebx
mov ebx, dword [esp + 0x14]
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, ecx, 0xffffff9c
mov dword [esp + 0xc], edi
add dword [esp + 0xc], edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov edi, dword [esp]
mov word [edi], ax
mov eax, dword [esp + 0xc]
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov edx, dword [esp + 0x18]
mov word [edi], 0x302e
add edi, 2
jmp 0x5a4880
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
mov eax, 8
sub eax, ecx
jmp 0x5a47d9
movzx ecx, byte [ebp + 0x6036a0]
mov ebp, dword [esp + 4]
movzx edx, byte [eax + 0x6036a0]
add edx, ecx
mov eax, 4
sub eax, edx
add eax, esi
mov esi, dword [esp + 0x50]
lea ecx, [esi + eax]
xor edx, edx
cmp eax, 2
sete dl
sub ecx, edx
mov eax, dword [esp + 0xc]
lea edx, [eax - 1]
mov al, byte [esi + 1]
mov byte [esi], al
mov byte [esi + 1], 0x2e
mov word [ecx], 0x2d65
mov eax, edx
shr eax, 0x1f
lea edi, [ecx + eax]
add edi, 1
sar edx, 0x1f
mov eax, dword [esp + 0xc]
add eax, edx
add eax, 0xffffffff
xor eax, edx
cmp eax, 0x63
ja 0x5a475c
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [edi], ax
sub edi, ecx
add edi, 2
mov edx, dword [esp + 0x18]
jmp 0x5a4880
imul ecx, eax, 0x290
shr ecx, 0x10
imul edx, ecx, 0xffffff9c
add edx, eax
add cl, 0x30
mov byte [edi], cl
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 1], ax
add edi, 3
mov edx, dword [esp + 0x18]
jmp 0x5a4880
test eax, eax
mov edx, dword [esp + 0x18]
je 0x5a4991
xor ecx, ecx
jmp 0x5a4998
movzx eax, byte [eax + 0x6036a0]
add eax, 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
mov ecx, 8
jmp 0x5a49aa
movzx ecx, byte [ebp + 0x6036a0]
movzx edx, byte [ebx + 0x6036a0]
add edx, ecx
mov eax, 4
sub eax, edx
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
add ebx, edx
lea edi, [ebx + ebp]
add ebx, ebp
add ebx, 0xffffffff
mov ecx, edi
and ecx, 3
xor edx, edx
cmp ebx, 3
jb 0x5a481f
and edi, 0xfffffffc
mov edx, dword [esp]
mov ebx, dword [esp + 0x80]
add ebx, edx
add ebx, 4
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, dword [ebx + edx - 3]
mov dword [ebx + edx - 4], ebp
add edx, 4
cmp edi, edx
jne 0x5a4810
add esi, eax
test ecx, ecx
je 0x5a484f
add edx, dword [esp + 0x80]
mov eax, dword [esp]
add eax, edx
add eax, 1
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [eax + edx - 1], bl
add edx, 1
cmp ecx, edx
jne 0x5a4840
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
mov byte [eax + ecx], 0x2e
add eax, ecx
add eax, 2
cmp eax, esi
mov ebp, dword [esp + 4]
jb 0x5a486a
mov esi, eax
mov edi, esi
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], 0x2c
add edi, 1
jmp 0x5a256c
mov ecx, 0x68db8bb
mul ecx
imul eax, ebx, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, esi
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, esi, 0xffffff9c
add ebx, eax
imul eax, edi, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov esi, dword [esp + 0x50]
mov word [esi], dx
sub esi, ecx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [esi + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov edi, esi
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jmp 0x5a46ab
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul esi, edx, 0x147b
mov edi, esi
shr edi, 0x13
imul ebx, eax, 0x147b
shr ebx, 0x13
imul ebp, edi, 0xffffff9c
add ebp, edx
imul edx, ebx, 0xffffff9c
add edx, eax
xor eax, eax
cmp esi, 0x500000
setb al
movzx esi, word [eax + edi*2 + 0x6035d8]
mov edi, dword [esp + 0x50]
mov word [edi], si
sub edi, eax
movzx eax, word [ebp + ebp + 0x6035d8]
mov ebp, dword [esp + 4]
mov word [edi + 2], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
jmp 0x5a4134
movzx ecx, byte [esi + 0x6036a0]
mov esi, dword [esp + 0xc]
movzx eax, byte [eax + 0x6036a0]
add eax, ecx
mov ecx, 4
sub ecx, eax
add edi, ecx
mov eax, dword [esp + 0x50]
mov word [eax], 0x2e30
test esi, esi
jns 0x5a4880
neg esi
add eax, 2
push esi
push 0x30
push eax
call fcn.005c5400
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x5a4880
mov ecx, dword [esp + 0x38]
cmp ecx, 0x41
mov eax, dword [esp + 0x10]
ja 0x5a4a8c
mov ebx, 0x20
jmp 0x5a4a96
mov dword [esp + 8], esi
add eax, eax
add eax, 0x10
mov ecx, dword [esp + 0x38]
mov esi, ecx
shr esi, 1
cmp esi, eax
ja 0x5a4a0b
mov esi, eax
add esi, 7
and esi, 0xfffffff8
add esi, ecx
jb 0x5a8509
mov dword [esp], edi
push esi
push ecx
mov ebp, dword [esp + 0x18]
push ebp
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a808e
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub edx, ecx
mov edi, esi
sub edi, edx
add edi, eax
sub ecx, ebp
add ecx, eax
push edx
push ecx
push edi
mov dword [esp + 0x1c], ebp
mov ebp, eax
call fcn.005c4cd0
add esp, 0xc
mov ecx, dword [esp]
sub ecx, dword [esp + 0x10]
add ecx, ebp
mov eax, ebp
add eax, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], edi
mov edi, ecx
mov dword [esp + 0x38], esi
mov eax, ebp
mov ebp, dword [esp + 4]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 8]
jmp 0x5a25c6
mov ebx, ecx
shr ebx, 1
add ebx, 7
and ebx, 0xfffffff8
add ebx, ecx
jb 0x5a850d
mov dword [esp], edi
push ebx
push ecx
push eax
push dword [esp + 0x48]
mov edi, eax
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8095
mov esi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov ebp, ebx
sub ebp, eax
add ebp, esi
sub ecx, edi
add ecx, esi
push eax
push ecx
push ebp
call fcn.005c4cd0
add esp, 0xc
mov eax, edi
mov edi, dword [esp]
sub edi, eax
add edi, esi
mov eax, esi
add eax, ebx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], ebx
jmp 0x5a27a9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x38]
cmp eax, 0x21
ja 0x5a4f2f
mov ecx, 0x10
jmp 0x5a4f39
mov eax, dword [esp + 0xcc]
test al, 0x10
jne 0x5a5694
test al, 8
je 0x5a740a
or esi, dword [esp + 0x1c]
je 0x5a56a2
mov dword [edi], 0x4e614e
add edi, 3
mov ebp, dword [esp + 4]
jmp 0x5a4870
mov dword [esp], edi
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
shld esi, ecx, 5
mov dword [esp + 0x1c], esi
shl ecx, 5
mov dword [esp + 0x34], ecx
add ecx, 0xfffffff0
adc esi, 0xffffffff
mov eax, ecx
mov ebx, 0x6a8346d2
mul ebx
mov ebp, edx
mov eax, ecx
mov edx, 0x6c07a2c2
mul edx
mov dword [esp + 8], edx
mov edi, eax
mov eax, esi
mul ebx
mov ebx, edx
mov dword [esp + 0x4c], eax
mov eax, esi
mov edx, 0x6c07a2c2
mul edx
add edi, ebp
adc eax, dword [esp + 8]
adc edx, 0
add edi, dword [esp + 0x4c]
adc eax, ebx
mov ebp, eax
adc edx, 0
mov dword [esp + 8], edx
mov ebx, 0x9e19db92
lea edi, [ebx + 0x16c94017]
mov dword [esp + 0x2c], edi
mov eax, ecx
mul edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], eax
mov eax, ecx
mul ebx
mov dword [esp + 0x28], edx
mov ecx, eax
mov eax, esi
mul edi
mov dword [esp + 0x60], edx
mov edi, eax
mov eax, esi
mul ebx
add ecx, dword [esp + 0x44]
adc eax, dword [esp + 0x28]
adc edx, 0
add ecx, edi
adc eax, dword [esp + 0x60]
adc edx, 0
mov ebx, edx
mov edi, dword [esp + 0x4c]
add edi, ebp
mov esi, dword [esp + 8]
adc ecx, esi
setb dl
cmp edi, ebp
mov ebp, edi
mov edi, ecx
sbb edi, esi
setb dh
or dh, dl
movzx edi, dh
add edi, eax
adc ebx, 0
mov dword [esp + 0x4c], ebx
mov eax, 1
cmp eax, ebp
mov eax, 0
sbb eax, ecx
setb byte [esp + 0x44]
mov esi, dword [esp + 0x34]
mov eax, esi
mov ecx, 0x6a8346d2
mul ecx
mov dword [esp + 0x28], edx
mov eax, esi
mov ecx, 0x6c07a2c2
mul ecx
mov ebx, edx
mov ecx, eax
mov esi, dword [esp + 0x1c]
mov eax, esi
mov edx, 0x6a8346d2
mul edx
mov dword [esp + 0x60], edx
mov ebp, eax
mov dword [esp + 0x74], eax
mov eax, esi
mov edx, 0x6c07a2c2
mul edx
mov dword [esp + 0xa8], eax
mov dword [esp + 8], edx
movzx esi, byte [esp + 0x44]
or esi, edi
mov dword [esp + 0x44], esi
add ecx, dword [esp + 0x28]
mov esi, ebx
adc esi, eax
mov ebx, edx
adc ebx, 0
add ecx, ebp
adc esi, dword [esp + 0x60]
mov dword [esp + 0x48], esi
adc ebx, 0
mov ecx, dword [esp + 0x34]
mov eax, ecx
mov esi, dword [esp + 0x2c]
mul esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x5c], eax
mov eax, ecx
mov ecx, 0x9e19db92
mul ecx
mov ebp, edx
mov ecx, eax
mov edi, dword [esp + 0x1c]
mov eax, edi
mul esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
mov eax, edi
mov edx, 0x9e19db92
mul edx
mov esi, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x1c], edx
xor eax, eax
imul eax, eax, 0x9e19db92
mov dword [esp + 0x88], eax
add ecx, dword [esp + 0x84]
adc ebp, esi
adc edx, eax
add ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
adc eax, 0
add eax, ebp
adc edx, 0
mov edi, edx
mov esi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x48]
add esi, ebp
adc ecx, ebx
setb dl
cmp esi, ebp
mov ebp, esi
mov esi, ecx
sbb esi, ebx
setb dh
or dh, dl
movzx esi, dh
add esi, eax
adc edi, 0
mov dword [esp + 0x5c], edi
mov eax, 1
cmp eax, ebp
mov eax, 0
sbb eax, ecx
setb byte [esp + 0x48]
mov ebx, dword [esp + 0x34]
or ebx, 0x10
mov eax, ebx
mov edx, 0x6a8346d2
mul edx
mov edi, edx
mov eax, ebx
mov ecx, 0x6c07a2c2
mul ecx
mov ecx, edx
movzx edx, byte [esp + 0x48]
mov dword [esp + 0x34], esi
or edx, esi
mov dword [esp + 0x48], edx
add eax, edi
adc ecx, dword [esp + 0xa8]
mov edx, dword [esp + 8]
adc edx, 0
add eax, dword [esp + 0x74]
adc ecx, dword [esp + 0x60]
adc edx, 0
mov dword [esp + 8], edx
mov eax, ebx
mul dword [esp + 0x2c]
mov esi, edx
mov edi, eax
mov eax, ebx
mov ebp, dword [esp + 0x1c]
mov edx, 0x9e19db92
mul edx
add eax, esi
adc edx, dword [esp + 0x68]
adc ebp, dword [esp + 0x88]
add eax, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
adc esi, 0
add esi, edx
adc ebp, 0
add edi, ecx
mov ebx, dword [esp + 8]
adc eax, ebx
setb dl
cmp edi, ecx
mov ecx, eax
sbb ecx, ebx
setb cl
or cl, dl
movzx ecx, cl
add ecx, esi
adc ebp, 0
mov edx, 1
cmp edx, edi
mov edx, 0
sbb edx, eax
mov edx, dword [esp + 0x5c]
setb al
movzx esi, al
or esi, ecx
mov eax, dword [esp + 0xc]
and eax, 1
add dword [esp + 0x44], eax
mov edi, dword [esp + 0x4c]
adc edi, 0
sub esi, eax
sbb ebp, 0
cmp dword [esp + 0x48], 0x28
mov eax, edx
sbb eax, 0
jb 0x5a4e84
push 0
push 0x28
push edx
push dword [esp + 0x40]
call fcn.005c5870
mov ecx, edx
mov dword [esp + 0xc], eax
mov edx, 0x28
mul edx
mov dword [esp + 8], ecx
lea ebx, [ecx*8]
lea ebx, [ebx + ebx*4]
mov ecx, ebp
lea ebp, [edx + ebx]
cmp eax, dword [esp + 0x44]
sbb ebp, edi
mov ebp, ecx
setb cl
add eax, 0x28
adc ebx, edx
cmp esi, eax
mov edx, ebp
sbb edx, ebx
setae dl
xor dl, cl
mov edx, dword [esp + 0x5c]
je 0x5a5196
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x4c], edi
mov eax, edx
mov ecx, SysReAllocString
and eax, ecx
mov ebx, dword [esp + 0x34]
mov ecx, 0xfffffffc
and ebx, ecx
mov ecx, ebx
add ecx, 4
mov dword [esp + 8], ecx
mov ecx, eax
adc ecx, 0
mov dword [esp + 0x60], ecx
mov ecx, ebx
or ecx, 2
mov edi, dword [esp + 0x48]
cmp ecx, edi
mov ebp, eax
sbb ebp, edx
mov dword [esp + 0xc], 1
jb 0x5a4eec
xor edi, ecx
mov ecx, edx
xor ecx, eax
or ecx, edi
sete byte [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov ch, cl
shr ch, 2
and ch, byte [esp + 0xc]
movzx ecx, ch
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0x34]
shrd ebp, edx, 2
shr edx, 2
cmp esi, dword [esp + 8]
mov ecx, dword [esp + 0x60]
sbb dword [esp + 0x1c], ecx
setae cl
cmp ebx, dword [esp + 0x44]
sbb eax, dword [esp + 0x4c]
setb al
xor al, cl
jne 0x5a4f1c
movzx eax, cl
mov dword [esp + 0xc], eax
mov ecx, ebp
add ecx, dword [esp + 0xc]
adc edx, 0
mov ebx, 0xfffffebc
jmp 0x5a51b2
mov ecx, eax
shr ecx, 1
add ecx, 7
and ecx, 0xfffffff8
mov dword [esp], edi
mov dword [esp + 0x18], edx
add ecx, eax
jb 0x5a8509
mov dword [esp + 8], esi
push ecx
push eax
push dword [esp + 0x18]
push dword [esp + 0x48]
mov esi, ecx
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8509
mov edi, eax
mov edx, esi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x1c], edx
sub esi, eax
mov edx, edi
mov dword [esp + 0x38], edi
add esi, edi
mov edi, dword [esp + 0x10]
sub ecx, edi
add ecx, edx
push eax
push ecx
push esi
call fcn.005c4cd0
add esp, 0xc
mov eax, dword [esp]
sub eax, edi
mov edi, eax
mov ecx, dword [esp + 0x38]
add edi, ecx
mov eax, ecx
add eax, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], esi
mov eax, ecx
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x5a2841
mov dword [esp], edi
mov ecx, dword [esp + 0x38]
cmp ecx, 0x21
mov eax, dword [esp + 0x10]
ja 0x5a509a
mov edi, 0x10
jmp 0x5a50a4
mov dword [esp], edi
mov ecx, dword [esp + 0x38]
cmp ecx, 0x21
mov eax, dword [esp + 0x10]
ja 0x5a5116
mov edi, 0x10
jmp 0x5a5120
mov dword [esp], edi
mov dword [esp + 8], esi
lea eax, [esi + 2]
mov ecx, dword [esp + 0x38]
mov esi, ecx
shr esi, 1
cmp esi, eax
ja 0x5a501b
mov esi, eax
add esi, 7
and esi, 0xfffffff8
add esi, ecx
jb 0x5a8509
mov edi, edx
push esi
push ecx
push dword [esp + 0x18]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8509
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub edx, ecx
mov ebp, esi
sub ebp, edx
add ebp, eax
sub ecx, dword [esp + 0x10]
add ecx, eax
push edx
push ecx
push ebp
mov dword [esp + 0x18], eax
call fcn.005c4cd0
add esp, 0xc
mov ecx, dword [esp]
sub ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
add ecx, edx
mov eax, edx
add eax, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 4]
mov esi, dword [esp + 8]
jmp 0x5a3365
mov edi, ecx
shr edi, 1
add edi, 7
and edi, 0xfffffff8
mov dword [esp + 0x18], edx
add edi, ecx
jb 0x5a850d
push edi
push ecx
push eax
push dword [esp + 0x48]
mov ebp, eax
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a808e
mov esi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov ebx, edi
sub ebx, eax
add ebx, esi
sub ecx, ebp
add ecx, esi
push eax
push ecx
push ebx
call fcn.005c4cd0
add esp, 0xc
mov ecx, dword [esp]
sub ecx, ebp
add ecx, esi
mov eax, esi
add eax, edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], edi
mov edi, ecx
mov ebp, dword [esp + 4]
mov edx, dword [esp + 0x18]
jmp 0x5a331e
mov edi, ecx
shr edi, 1
add edi, 7
and edi, 0xfffffff8
add edi, ecx
jb 0x5a850d
mov ebx, edx
push edi
push ecx
push eax
push dword [esp + 0x48]
mov dword [esp + 0x20], eax
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8509
mov esi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov ebp, edi
sub ebp, eax
add ebp, esi
sub ecx, dword [esp + 0x10]
add ecx, esi
push eax
push ecx
push ebp
call fcn.005c4cd0
add esp, 0xc
mov ecx, dword [esp]
sub ecx, dword [esp + 0x10]
add ecx, esi
mov eax, esi
add eax, edi
mov dword [esp + 0x54], eax
mov eax, dword [ebx]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], edi
mov edi, ecx
mov ecx, eax
mov dword [esp + 0x10], esi
mov ebp, dword [esp + 4]
jmp 0x5a28a6
cmp esi, eax
sbb ebp, ebx
setae al
movzx eax, al
mov ecx, dword [esp + 0xc]
add ecx, eax
mov edx, dword [esp + 8]
adc edx, 0
mov ebx, 0xfffffebd
mov eax, dword [esp + 0x50]
lea esi, [eax + 1]
mov eax, 0xa4c67fff
cmp eax, ecx
mov eax, 0x38d7e
sbb eax, edx
jae 0x5a52f0
push 0
push 0x5f5e100
push edx
push ecx
mov ebp, ecx
mov edi, edx
call fcn.005c5870
mov dword [esp + 8], eax
imul ecx, eax, 0xfa0a1f00
add ecx, ebp
mov dword [esp + 0xc], ecx
push 0x2386f2
push 0x6fc10000
push edi
push ebp
call fcn.005c5870
imul ecx, eax, 0xfa0a1f00
add ecx, dword [esp + 8]
add al, 0x30
mov byte [esi], al
mov eax, 0x6fc10000
add eax, 0xffffffff
mov edx, 0x2386f2
adc edx, 0xffffffff
cmp eax, ebp
sbb edx, edi
adc esi, 0
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul ebp, ecx, 0xffffff9c
add ebp, edx
imul edx, edi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi], ax
movzx eax, word [ebp + ebp + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 6], ax
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul ebp, ecx, 0xffffff9c
add ebp, edx
imul edx, edi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 8], ax
movzx eax, word [ebp + ebp + 0x6035d8]
mov word [esi + 0xa], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xc], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 0xe], ax
add esi, 0x10
jmp 0x5a55aa
cmp ecx, 0x5f5e100
mov eax, edx
sbb eax, 0
jb 0x5a5340
push 0
push 0x5f5e100
push edx
push ecx
mov ebp, ecx
call fcn.005c5870
mov edi, eax
mov dword [esp + 0xc], edx
mov ecx, 0xfa0a1f00
mul ecx
mov ecx, eax
add ecx, ebp
cmp edi, 0x63
ja 0x5a5362
xor eax, eax
cmp edi, 0xa
setb al
movzx edx, word [eax + edi*2 + 0x6035d8]
mov word [esi], dx
sub esi, eax
add esi, 2
jmp 0x5a5548
cmp ecx, 0x63
ja 0x5a53ae
xor eax, eax
cmp ecx, 0xa
setb al
movzx ecx, word [eax + ecx*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
add esi, 2
jmp 0x5a55aa
cmp edi, 0x270f
ja 0x5a53fa
imul edx, edi, 0x147b
mov dword [esp + 0xc], edx
shr edx, 0x13
imul ebp, edx, 0xffffff9c
add ebp, edi
xor eax, eax
cmp dword [esp + 0xc], 0x500000
setb al
movzx edx, word [eax + edx*2 + 0x6035d8]
mov word [esi], dx
sub esi, eax
movzx eax, word [ebp + ebp + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a5548
mov edi, ecx
cmp ecx, 0x270f
ja 0x5a5464
mov eax, edi
imul edi, edi, 0x147b
mov ecx, edi
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, eax
xor eax, eax
cmp edi, 0x500000
setb al
movzx ecx, word [eax + ecx*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a55aa
mov eax, edi
cmp edi, 0xf423f
ja 0x5a54ce
mov edx, 0x68db9
mul edx
imul eax, dword [esp + 0xc], 0x68db9
add eax, edx
imul edx, eax, 0xffffd8f0
add edx, edi
imul edi, edx, 0x147b
shr edi, 0x13
imul ebp, edi, 0xffffff9c
add ebp, edx
xor edx, edx
cmp eax, 0xa
setb dl
movzx eax, word [edx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, edx
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [ebp + ebp + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a5548
mov ebp, edx
mov eax, edi
cmp edi, 0xf423f
ja 0x5a561b
mov ecx, 0x68db9
mul ecx
imul eax, ebp, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, ecx, 0x147b
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a55aa
mov edx, 0x68db8bb
mul edx
imul eax, dword [esp + 0xc], 0x68db8bb
add eax, edx
shr eax, 8
imul edx, eax, 0xffffd8f0
add edx, edi
mov dword [esp + 8], edx
imul edi, eax, 0x147b
shr edi, 0x13
imul ebp, edx, 0x147b
shr ebp, 0x13
imul edx, edi, 0xffffff9c
mov dword [esp + 0xc], edx
add dword [esp + 0xc], eax
imul eax, ebp, 0xffffff9c
add eax, dword [esp + 8]
movzx edx, word [edi + edi + 0x6035d9]
mov word [esi], dx
mov edx, dword [esp + 0xc]
movzx edx, word [edx + edx + 0x6035d8]
mov word [esi + 1], dx
movzx edx, word [ebp + ebp + 0x6035d8]
mov word [esi + 3], dx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 5], ax
add esi, 7
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul ebp, ecx, 0xffffff9c
add ebp, edx
imul edx, edi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi], ax
movzx eax, word [ebp + ebp + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov ecx, dword [esp]
mov edx, dword [esp + 0x80]
mov al, byte [ecx + edx + 1]
mov byte [ecx + edx], al
mov byte [ecx + edx + 1], 0x2e
sub ebx, dword [esp + 0x50]
add ebx, 0xfffffffe
lea eax, [esi + 5]
mov ebp, dword [esp + 4]
movzx edx, byte [eax - 6]
add ebx, 1
add eax, 0xffffffff
add esi, 0xffffffff
cmp dl, 0x30
je 0x5a55ce
add ebx, esi
xor ecx, ecx
cmp dl, 0x2e
setne cl
lea edi, [eax + ecx]
mov word [eax + ecx - 5], 0x2d65
imul edx, ebx, 0xfffffd70
shr edx, 0x10
imul esi, edx, 0xffffff9c
sub esi, ebx
add dl, 0x30
mov byte [eax + ecx - 3], dl
movzx edx, word [esi + esi + 0x6035d8]
mov word [eax + ecx - 2], dx
jmp 0x5a486c
mov ecx, 0x68db8bb
mul ecx
imul eax, ebp, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edi, eax, 0x147b
mov dword [esp + 0xc], edi
shr edi, 0x13
imul ebp, ecx, 0x147b
shr ebp, 0x13
imul edx, edi, 0xffffff9c
add edx, eax
imul eax, ebp, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp dword [esp + 0xc], 0x500000
setb cl
movzx edi, word [ecx + edi*2 + 0x6035d8]
mov word [esi], di
sub esi, ecx
movzx ecx, word [edx + edx + 0x6035d8]
mov word [esi + 2], cx
movzx ecx, word [ebp + ebp + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
jmp 0x5a55a3
mov dword [edi], 0x6c6c756e
add edi, 4
jmp 0x5a421f
mov byte [edi], 0x2d
shr ebp, 0x1f
mov dword [edi + ebp + 4], 0x7974696e
mov dword [edi + ebp], 0x69666e49
add edi, ebp
add edi, 8
mov ebp, dword [esp + 4]
jmp 0x5a4870
cmp bl, 7
sete cl
mov eax, dword [esp + 0x14]
add eax, eax
or eax, dword [esp + 0x20]
mov ebp, edx
mov edx, dword [esp + 0x24]
mov dword [edx - 8], eax
lea eax, [edx - 8]
mov dword [esp], eax
shl esi, cl
mov dword [esp + 8], esi
shl cl, 5
or cl, 0x5b
mov eax, dword [esp + 0x58]
mov dword [edx - 4], eax
lea eax, [edi + 1]
mov dword [esp + 0xc], eax
mov byte [edi], cl
mov edi, dword [esp]
mov edx, dword [ebp + 8]
mov eax, ebp
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 4]
cmp bl, 7
mov ecx, 0
mov esi, dword [esp + 0x1c]
jne 0x5a2540
mov edx, dword [edx + 0x10]
mov cl, 1
mov dword [esp + 0x58], eax
jmp 0x5a2540
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
sub edx, ecx
xor ebx, ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x78]
shl dl, 5
or dl, 0x5d
mov byte [edi + ebx - 1], dl
mov byte [edi + ebx], 0x2c
cmp dword [esp + 0x54], ecx
jbe 0x5a7fe1
lea edx, [ecx + 8]
mov dword [esp], edx
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x58], ecx
mov esi, edx
shr esi, 1
and dl, 1
mov dword [esp + 0x78], edx
add ebx, 1
mov edx, dword [esp + 0xc]
add edx, 0xfffffff8
mov ecx, dword [esp]
add esi, 0xffffffff
mov dword [esp + 8], esi
je 0x5a5747
add edi, ebx
mov esi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x78]
mov edi, dword [esp]
mov edx, eax
jmp 0x5a2540
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a57cf
lea eax, [esp + 0x9c]
mov dword [eax], 7
mov dword [eax + 4], str.invalid_utf_8_encoding_in_string
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5a8546
jmp 0x5a250f
mov dword [esp], ecx
mov ebp, ebx
and ebp, 0xfffff
mov ecx, ebx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x7ff
je 0x5a7961
mov byte [eax], 0x2d
mov edx, ebx
shr edx, 0x1f
lea edi, [esi + edx]
and ebx, 0x7fffffff
or ebx, dword [esp]
je 0x5a6229
mov dword [esp + 4], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 8], edi
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x5a79cb
mov esi, 0xfffff
mov edi, 0xffffffff
add edi, 1
adc esi, 0
or edi, dword [esp]
or esi, ebp
lea eax, [ecx - 0x3ff]
cmp eax, 0x34
ja 0x5a6370
test edi, edi
jne 0x5a635e
bsf edx, esi
add edx, 0x20
jmp 0x5a6361
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a5894
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0x40]
mov dword [eax], 3
mov dword [eax + 4], str.invalid_JSON_value_type
jmp 0x5a848e
push 0
push 0x5f5e100
push ebx
push edi
call fcn.005c5870
mov ecx, edx
mov edx, 0xfa0a1f00
mov ebp, eax
mul edx
add eax, edi
mov dword [esp], eax
cmp edi, 0x6fc10000
mov eax, ebx
sbb eax, 0x2386f2
jae 0x5a62d3
cmp ebp, 0x63
ja 0x5a68b2
xor eax, eax
cmp ebp, 0xa
setb al
movzx ecx, word [eax + ebp*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
add esi, 2
jmp 0x5a72fd
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a591d
lea eax, [esp + 0x9c]
mov dword [eax], 3
mov dword [eax + 4], str.invalid_JSON_value_type
jmp 0x5a57dc
add edx, ebp
mov byte [eax], 0x22
mov esi, eax
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x14]
mov ecx, edx
sub ecx, ebp
cmp ecx, 0x10
jl 0x5a5a8b
xor eax, eax
mov dword [esp + 8], esi
lea edi, [esi + eax]
add edi, 1
lea edx, [eax + ebp]
mov dword [esp], edx
movzx edx, byte [ebp + eax]
cmp byte [ebx + edx], 0
mov esi, ebx
jne 0x5a5b1f
movzx ebx, byte [ebp + eax + 1]
cmp byte [esi + ebx], 0
mov ebx, esi
jne 0x5a5b27
movzx edx, byte [ebp + eax + 2]
cmp byte [ebx + edx], 0
mov esi, dword [esp]
jne 0x5a5b3d
movzx edx, byte [ebp + eax + 3]
cmp byte [ebx + edx], 0
jne 0x5a5fd0
movzx edx, byte [ebp + eax + 4]
cmp byte [ebx + edx], 0
jne 0x5a5ffb
movzx edx, byte [ebp + eax + 5]
cmp byte [ebx + edx], 0
jne 0x5a601b
movzx edx, byte [ebp + eax + 6]
cmp byte [ebx + edx], 0
jne 0x5a6043
movzx edx, byte [ebp + eax + 7]
cmp byte [ebx + edx], 0
jne 0x5a606d
movzx edx, byte [ebp + eax + 8]
cmp byte [ebx + edx], 0
jne 0x5a6095
movzx edx, byte [ebp + eax + 9]
cmp byte [ebx + edx], 0
jne 0x5a60bd
movzx edx, byte [ebp + eax + 0xa]
cmp byte [ebx + edx], 0
jne 0x5a60ed
movzx edx, byte [ebp + eax + 0xb]
cmp byte [ebx + edx], 0
jne 0x5a611f
movzx edx, byte [ebp + eax + 0xc]
cmp byte [ebx + edx], 0
jne 0x5a614f
movzx edx, byte [ebp + eax + 0xd]
cmp byte [ebx + edx], 0
jne 0x5a617f
movzx edx, byte [ebp + eax + 0xe]
cmp byte [ebx + edx], 0
jne 0x5a61b7
movzx edx, byte [ebp + eax + 0xf]
cmp byte [ebx + edx], 0
jne 0x5a61f1
mov edx, dword [esi + 0xc]
mov dword [edi + 0xc], edx
mov edx, dword [esi + 8]
mov dword [edi + 8], edx
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [edi + 4], esi
mov dword [edi], edx
add eax, 0x10
add ecx, 0xfffffff0
cmp ecx, 0xf
mov esi, dword [esp + 8]
jg 0x5a5951
lea edi, [esi + eax]
add edi, 1
add ebp, eax
mov edx, dword [esp + 4]
jmp 0x5a5a90
add esi, 1
mov edi, esi
cmp ecx, 4
jl 0x5a5ae8
mov eax, edx
sub eax, ebp
movzx edx, byte [ebp]
cmp byte [ebx + edx], 0
jne 0x5a5b56
movzx ecx, byte [ebp + 1]
cmp byte [ebx + ecx], 0
jne 0x5a5b33
movzx ecx, byte [ebp + 2]
cmp byte [ebx + ecx], 0
jne 0x5a5b49
movzx ecx, byte [ebp + 3]
cmp byte [ebx + ecx], 0
mov edx, dword [esp + 4]
jne 0x5a5fe0
mov ecx, dword [ebp]
mov dword [edi], ecx
add edi, 4
add ebp, 4
add eax, 0xfffffffc
cmp eax, 3
jg 0x5a5a99
mov esi, ebp
cmp edx, ebp
mov ecx, dword [esp + 0xcc]
jbe 0x5a6237
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi]
cmp byte [ebx + eax], 0
jne 0x5a5b1a
add esi, 1
mov byte [edi], al
add edi, 1
cmp edx, esi
jne 0x5a5b00
jmp 0x5a6237
mov dword [esp], esi
jmp 0x5a5b5d
mov edx, dword [esp + 4]
mov ebx, esi
jmp 0x5a5b5d
mov ecx, dword [esp + 8]
lea edi, [ecx + eax]
add edi, 1
add ebp, eax
mov byte [edi], dl
add edi, 1
add ebp, 1
jmp 0x5a5b56
mov ecx, dword [esp + 8]
lea edi, [ecx + eax]
add edi, 1
add ebp, eax
movzx eax, word [ebp]
mov word [edi], ax
add edi, 2
add ebp, 2
mov dword [esp], ebp
mov edx, dword [esp + 4]
mov esi, edi
mov ebp, dword [esp]
jmp 0x5a5bb1
push 1
lea eax, [esp + 0x6a]
push eax
push 1
mov ebp, dword [esp + 0xc]
push ebp
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_MultiByteToWideChar_1]
mov word [esi], 0x755c
movzx eax, word [esp + 0x66]
movzx ecx, al
shr eax, 8
movzx eax, word [eax + eax + 0x6033d8]
mov word [esi + 2], ax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [esi + 4], ax
add esi, 6
add ebp, 1
mov edx, dword [esp + 4]
lea edi, [ebp + 4]
cmp edi, edx
mov dword [esp], ebp
ja 0x5a5f23
movzx eax, byte [ebp]
movzx edx, al
movzx ecx, byte [ebx + edx]
cmp cl, 0xc
ja case.default.0x5a5bd6
movzx ecx, cl
jmp dword [ecx*4 + 0x604b28]
mov ecx, dword [esp + 0xcc]
test cl, 2
je 0x5a5cae
jmp 0x5a5d05
mov ecx, dword [esp]
cmp byte [ecx + 1], 0
je 0x5a5cae
mov ebp, dword [esp]
movzx eax, word [ebp]
mov word [esi], ax
add esi, 2
jmp 0x5a5ed5
mov eax, dword [esp]
movzx eax, word [eax]
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x5a5cae
mov ecx, eax
and ecx, 0x1e
je 0x5a5cae
mov word [esi], ax
add esi, 2
mov ebp, dword [esp]
jmp 0x5a5ed5
mov eax, dword [esp]
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x5a5cae
mov ecx, eax
and ecx, 0x3007
je 0x5a5cae
test al, 4
je 0x5a5c6d
mov ecx, eax
and ecx, 0x3003
jne 0x5a5cae
mov dword [esi], eax
add esi, 4
jmp 0x5a5e1d
cmp edi, dword [esp + 4]
ja 0x5a5f69
mov eax, dword [esp]
mov ecx, dword [eax]
mov edx, ecx
and edx, 0xc0c0f0
mov eax, ecx
cmp edx, 0x8080e0
jne 0x5a5cae
mov edx, ecx
and edx, 0x200f
je 0x5a5cae
cmp edx, 0x200d
jne 0x5a5fa2
mov ecx, dword [esp + 0xcc]
test cl, 0x20
je 0x5a7374
mov ebp, dword [esp]
add ebp, 1
mov byte [esi], al
add esi, 1
mov edx, dword [esp + 4]
jmp 0x5a5bb1
mov eax, dword [esp]
movzx ecx, word [eax]
movzx eax, byte [eax + 2]
mov edi, eax
shl edi, 0x10
or edi, ecx
and edi, 0xc0c0f0
cmp edi, 0x8080e0
jne 0x5a5d05
and ecx, 0x200f
je 0x5a5d05
cmp ecx, 0x200d
jne 0x5a5ee1
mov eax, dword [esp + 0xcc]
test al, 0x20
je 0x5a7374
mov word [esi], 0x755c
mov dword [esi + 2], 0x44464646
add esi, 6
jmp 0x5a5d4d
mov dword [esi], 0x3030755c
mov ebp, dword [esp]
movzx eax, byte [ebp]
movzx eax, word [eax + eax + 0x6033d8]
jmp 0x5a5ba3
movzx eax, word [edx + edx + str._________________b_t_n___f_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi], ax
add esi, 2
mov ebp, dword [esp]
jmp 0x5a5baa
mov ecx, dword [esp]
mov ecx, dword [ecx]
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x5a5d05
mov edx, ecx
and edx, 0x3007
je 0x5a5d05
test cl, 4
je 0x5a5d81
and ecx, 0x3003
jne 0x5a5d05
and al, 7
movzx eax, al
shl eax, 0x12
mov ebp, dword [esp]
movzx ecx, byte [ebp + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, eax
movzx edx, byte [ebp + 2]
and edx, 0x3f
mov ebx, edx
shl ebx, 6
or ebx, ecx
movzx ecx, byte [ebp + 3]
and ecx, 0x3f
lea ebp, [ebx + ecx]
add ecx, ebx
add ecx, 0xffff0000
mov ebx, dword [esp + 0x14]
mov eax, esi
mov esi, ecx
shr esi, 0xa
add esi, 0xd800
mov word [eax], 0x755c
shr esi, 8
movzx esi, word [esi + esi + 0x6033d8]
mov word [eax + 2], si
mov esi, eax
shr ecx, 9
and ecx, 0x1fe
movzx ecx, word [ecx + 0x6033d8]
mov word [esi + 4], cx
mov word [esi + 6], 0x755c
shr edx, 1
and edx, 6
movzx ecx, word [edx + 0x603590]
mov word [esi + 8], cx
mov eax, ebp
movzx eax, al
movzx eax, word [eax + eax + 0x6033d8]
mov word [esi + 0xa], ax
add esi, 0xc
mov ebp, edi
mov edx, dword [esp + 4]
jmp 0x5a5bb1
mov ecx, dword [esp]
movzx ecx, word [ecx]
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x5a5d05
and ecx, 0x1e
je 0x5a5d05
and al, 0x1f
movzx ecx, al
mov eax, ecx
shl eax, 6
mov ebp, dword [esp]
movzx edx, byte [ebp + 1]
and edx, 0x3f
mov word [esi], 0x755c
shr ecx, 2
movzx ecx, word [ecx + ecx + 0x6033d8]
mov word [esi + 2], cx
movzx eax, al
or eax, edx
movzx eax, word [eax + eax + 0x6033d8]
jmp 0x5a5ece
mov eax, dword [esp]
cmp byte [eax + 1], 0
je 0x5a5d05
push 1
lea eax, [esp + 0x6a]
push eax
push 2
mov ebp, dword [esp + 0xc]
push ebp
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_MultiByteToWideChar_1]
mov word [esi], 0x755c
movzx eax, word [esp + 0x66]
movzx ecx, al
shr eax, 8
movzx eax, word [eax + eax + 0x6033d8]
mov word [esi + 2], ax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [esi + 4], ax
add esi, 6
add ebp, 2
mov edx, dword [esp + 4]
jmp 0x5a5bb1
shl edx, 0xc
mov ebp, dword [esp]
movzx ecx, byte [ebp + 1]
and ecx, 0x3f
shl ecx, 6
and eax, 0x3f
mov word [esi], 0x755c
or edx, ecx
movzx edx, dh
movzx edx, word [edx + edx + 0x6033d8]
mov word [esi + 2], dx
movzx ecx, cl
or ecx, eax
movzx eax, word [ecx + ecx + 0x6033d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a5faa
mov eax, dword [esp + 4]
sub eax, ebp
je case.default.0x5a5bd6
mov ebp, eax
mov eax, dword [esp]
movzx eax, byte [eax]
movzx edx, al
movzx ecx, byte [ebx + edx]
mov ch, 2
cmp cl, 0xa
je 0x5a5f55
cmp cl, 0xc
je 0x5a5f55
mov ch, cl
cmp cl, 0xb
jne 0x5a5f53
mov ch, 1
shr ch, 1
movzx ebx, ch
cmp ebp, ebx
mov ebx, dword [esp + 0x14]
jge 0x5a5bca
jmp case.0x5a5bd6.1
mov eax, dword [esp]
movzx edx, word [eax]
movzx ecx, byte [eax + 2]
shl ecx, 0x10
or ecx, edx
mov edi, ecx
and edi, 0xc0c0f0
mov eax, edx
cmp edi, 0x8080e0
jne 0x5a5fb6
and edx, 0x200f
je 0x5a5fb6
cmp edx, 0x200d
mov ebx, dword [esp + 0x14]
je 0x5a5cae
mov dword [esi], ecx
add esi, 3
mov ebp, dword [esp]
add ebp, 3
mov edx, dword [esp + 4]
jmp 0x5a5bb1
mov ebx, dword [esp + 0x14]
jmp 0x5a5cae
mov ebp, dword [esp]
add ebp, 1
mov byte [esi], al
mov edx, dword [esp + 4]
jmp 0x5a593e
mov ecx, dword [esp + 8]
lea edi, [ecx + eax]
add edi, 1
add ebp, eax
mov edx, dword [esp + 4]
mov al, byte [ebp + 2]
mov byte [edi + 2], al
movzx eax, word [ebp]
mov word [edi], ax
add edi, 3
add ebp, 3
mov dword [esp], ebp
jmp 0x5a5b5d
lea ecx, [eax + ebp]
add ecx, 4
mov dword [esp], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [esp + 8]
mov dword [edx + eax + 1], ecx
lea edi, [edx + eax]
add edi, 5
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 5
mov dword [esp], ecx
mov cl, byte [ebp + eax + 4]
mov edx, dword [esp + 8]
mov byte [edx + eax + 5], cl
mov ecx, dword [ebp + eax]
mov dword [edx + eax + 1], ecx
lea edi, [edx + eax]
add edi, 6
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 6
mov dword [esp], ecx
movzx ecx, word [ebp + eax + 4]
mov edx, dword [esp + 8]
mov word [edx + eax + 5], cx
mov ecx, dword [ebp + eax]
mov dword [edx + eax + 1], ecx
lea edi, [edx + eax]
add edi, 7
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 7
mov dword [esp], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 3]
mov esi, dword [esp + 8]
mov dword [esi + eax + 4], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 8
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 8
mov dword [esp], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov esi, dword [esp + 8]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 9
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 9
mov dword [esp], ecx
mov cl, byte [ebp + eax + 8]
mov esi, dword [esp + 8]
mov byte [esi + eax + 9], cl
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0xa
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 0xa
mov dword [esp], ecx
movzx ecx, word [ebp + eax + 8]
mov esi, dword [esp + 8]
mov word [esi + eax + 9], cx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0xb
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 0xb
mov dword [esp], ecx
mov ecx, dword [ebp + eax + 7]
mov esi, dword [esp + 8]
mov dword [esi + eax + 8], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0xc
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 0xc
mov dword [esp], ecx
mov ecx, dword [ebp + eax + 8]
mov esi, dword [esp + 8]
mov dword [esi + eax + 9], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0xd
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 0xd
mov dword [esp], ecx
mov cl, byte [ebp + eax + 0xc]
mov esi, dword [esp + 8]
mov byte [esi + eax + 0xd], cl
mov ecx, dword [ebp + eax + 8]
mov dword [esi + eax + 9], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0xe
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 0xe
mov dword [esp], ecx
movzx ecx, word [ebp + eax + 0xc]
mov esi, dword [esp + 8]
mov word [esi + eax + 0xd], cx
mov ecx, dword [ebp + eax + 8]
mov dword [esi + eax + 9], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0xf
jmp 0x5a5b59
lea ecx, [eax + ebp]
add ecx, 0xf
mov dword [esp], ecx
mov ecx, dword [ebp + eax + 0xb]
mov esi, dword [esp + 8]
mov dword [esi + eax + 0xc], ecx
mov ecx, dword [ebp + eax + 8]
mov dword [esi + eax + 9], ecx
mov ecx, dword [ebp + eax]
mov edx, dword [ebp + eax + 4]
mov dword [esi + eax + 5], edx
mov dword [esi + eax + 1], ecx
lea edi, [esi + eax]
add edi, 0x10
jmp 0x5a5b59
mov dword [edi], 0x302e30
add edi, 3
jmp 0x5a24b3
mov byte [edi], 0x22
add edi, 1
mov eax, dword [esp + 0x10]
jmp 0x5a24ba
mov ecx, dword [esp + 0xcc]
test edx, edx
je 0x5a68a7
lea esi, [edx - 1]
mov ebx, edx
and edx, 7
je 0x5a6843
xor ecx, ecx
movzx eax, byte [ebp + ecx]
mov byte [edi + ecx], al
add ecx, 1
cmp edx, ecx
jne 0x5a6265
add edi, ecx
add ebp, ecx
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x10]
jmp 0x5a6845
cmp edi, 0x270f
ja 0x5a68f9
imul eax, edi, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, edi
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [esi], ax
sub esi, ebx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a70aa
push 0xe8
push 0xd4a51000
push ebx
push edi
call fcn.005c5870
mov ecx, eax
mov ebx, edx
imul eax, eax, 0xffffd8f0
add eax, ebp
mov dword [esp + 4], eax
cmp ecx, 0xf423f
ja 0x5a6969
mov edx, 0x68db9
mov eax, ecx
mul edx
imul eax, ebx, 0x68db9
add eax, edx
imul edx, eax, 0xffffd8f0
add edx, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, ecx, 0xffffff9c
add edi, edx
xor edx, edx
cmp eax, 0xa
setb dl
movzx eax, word [edx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, edx
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
mov edi, esi
jmp 0x5a69e4
bsf edx, edi
mov eax, 0x433
sub eax, ecx
cmp eax, edx
jbe 0x5a67f5
or ebp, dword [esp]
sete dl
cmp ecx, 1
seta al
and al, dl
lea ebp, [edi*4 + 2]
imul ebx, ecx, 0x4d105
mov dword [esp + 0x60], 0
mov edx, 0xfffdff5b
test al, al
jne 0x5a639e
xor edx, edx
mov dword [esp + 0x18], ebx
add ebx, edx
add ebx, 0xebc64801
sar ebx, 0x14
mov dword [esp + 0x20], ebx
imul ebx, ebx, 0xfffcad95
shr ebx, 0x10
add ecx, ebx
add cl, 0xce
mov ebx, ebp
shl ebx, cl
shld esi, edi, 2
mov dword [esp + 0x4c], 0
test cl, 0x20
jne 0x5a63d8
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x14], ebx
mov ebx, esi
shld ebx, ebp, cl
test cl, 0x20
jne 0x5a63ea
mov dword [esp + 0x14], ebx
lea ebp, [edi*4]
mov ebx, ebp
shl ebx, cl
mov dword [esp + 0x44], 0
test cl, 0x20
jne 0x5a6406
mov dword [esp + 0x44], ebx
mov dword [esp + 0x24], ebx
mov ebx, esi
shld ebx, ebp, cl
movzx eax, al
lea eax, [eax + edi*4]
test cl, 0x20
jne 0x5a641e
mov dword [esp + 0x24], ebx
add eax, 0xfffffffe
adc esi, 0xffffffff
mov ebp, eax
shl ebp, cl
mov ebx, 0
test cl, 0x20
jne 0x5a6434
mov ebx, ebp
shld esi, eax, cl
test cl, 0x20
mov edi, dword [esp + 0x18]
jne 0x5a6442
mov ebp, esi
mov dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x20]
shl eax, 4
mov ecx, 0x6014e8
sub ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, 0x6014f0
sub ecx, eax
add edx, edi
add edx, 0xef364801
xor eax, eax
cmp edx, 0x37fffff
seta al
add eax, dword [ecx]
mov esi, dword [ecx + 4]
adc esi, 0
mov dword [esp + 0x58], esi
mov ecx, eax
mov dword [esp + 0x38], eax
mul ebx
mov dword [esp + 0x50], edx
mov eax, esi
mul ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], ebx
mov ebx, eax
mov eax, ecx
mul ebp
mov dword [esp + 0x34], edx
mov ecx, eax
mov eax, esi
mul ebp
mov ebp, eax
mov edi, edx
add ebx, dword [esp + 0x50]
adc ebp, dword [esp + 0x28]
adc edi, 0
add ebx, ecx
adc ebp, dword [esp + 0x34]
adc edi, 0
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
mov eax, esi
mov ebx, dword [esp + 0x18]
mul ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x50], ecx
mov eax, ecx
mul ebx
mov dword [esp + 0x1c], edx
mov ebx, eax
mov eax, esi
mov esi, dword [esp + 0x2c]
mul esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x48], eax
mov eax, ecx
mul esi
add ebx, dword [esp + 0x30]
adc eax, dword [esp + 0x1c]
adc edx, 0
add ebx, dword [esp + 0x48]
adc eax, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x28]
add ecx, ebp
adc ebx, edi
setb dl
cmp ecx, ebp
mov esi, ebx
sbb esi, edi
setb dh
or dh, dl
movzx edx, dh
add edx, eax
mov dword [esp + 0x1c], edx
adc dword [esp + 0x18], 0
mov eax, 1
cmp eax, ecx
mov eax, 0
sbb eax, ebx
setb byte [esp + 0x28]
mov esi, dword [esp + 0x38]
mov eax, esi
mov ecx, dword [esp + 0x44]
mul ecx
mov dword [esp + 0x30], edx
mov edi, dword [esp + 0x58]
mov eax, edi
mul ecx
mov dword [esp + 0x48], edx
mov ebx, eax
mov eax, esi
mov esi, dword [esp + 0x24]
mul esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x5c], eax
mov eax, edi
mul esi
mov ebp, eax
movzx eax, byte [esp + 0x28]
or eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
add ebx, dword [esp + 0x30]
adc ebp, dword [esp + 0x48]
adc edx, 0
add ebx, dword [esp + 0x5c]
adc ebp, dword [esp + 0x2c]
adc edx, 0
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x34]
mov eax, edi
mul ecx
mov dword [esp + 0x2c], edx
mov ebx, eax
mov esi, dword [esp + 0x50]
mov eax, esi
mul ecx
mov dword [esp + 0x30], edx
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x24]
mul edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov eax, esi
mul edi
add ecx, dword [esp + 0x2c]
adc eax, dword [esp + 0x30]
adc edx, 0
add ecx, dword [esp + 0x48]
adc eax, dword [esp + 0x44]
adc edx, 0
mov edi, edx
add ebx, ebp
mov edx, dword [esp + 0x28]
adc ecx, edx
setb byte [esp + 0x24]
cmp ebx, ebp
mov esi, ecx
sbb esi, edx
setb dh
or dh, byte [esp + 0x24]
movzx esi, dh
add esi, eax
adc edi, 0
mov dword [esp + 0x24], edi
mov eax, 1
cmp eax, ebx
mov eax, 0
sbb eax, ecx
setb byte [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov eax, ecx
mov edi, dword [esp + 0x4c]
mul edi
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x58]
mov eax, ebx
mul edi
mov dword [esp + 0x30], edx
mov ebp, eax
mov eax, ecx
mov ecx, dword [esp + 0x14]
mul ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x48], eax
mov eax, ebx
mul ecx
mov ebx, eax
mov ecx, edx
movzx eax, byte [esp + 0x44]
mov dword [esp + 0x58], esi
or eax, esi
mov dword [esp + 0x38], eax
add ebp, dword [esp + 0x2c]
adc ebx, dword [esp + 0x30]
adc ecx, 0
add ebp, dword [esp + 0x48]
adc ebx, dword [esp + 0x28]
adc ecx, 0
mov ebp, dword [esp + 0x34]
mov eax, ebp
mul edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x50]
mov eax, esi
mul edi
mov dword [esp + 0x4c], edx
mov edi, eax
mov eax, ebp
mov ebp, dword [esp + 0x14]
mul ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], eax
mov eax, esi
mul ebp
mov esi, edx
add edi, dword [esp + 0x28]
adc eax, dword [esp + 0x4c]
adc esi, 0
add edi, dword [esp + 0x2c]
adc eax, dword [esp + 0x34]
adc esi, 0
mov ebp, dword [esp + 0x44]
add ebp, ebx
adc edi, ecx
setb dl
cmp ebp, ebx
mov ebx, edi
sbb ebx, ecx
setb cl
or cl, dl
movzx ecx, cl
add ecx, eax
adc esi, 0
mov dword [esp + 0x14], 1
mov eax, 1
cmp eax, ebp
sbb dword [esp + 0x60], edi
setb al
movzx edi, al
or edi, ecx
mov eax, dword [esp]
and eax, 1
add dword [esp + 0x1c], eax
adc dword [esp + 0x18], 0
sub edi, eax
sbb esi, 0
cmp dword [esp + 0x38], 0x28
mov eax, dword [esp + 0x24]
sbb eax, 0
jb 0x5a6776
push 0
push 0x28
push dword [esp + 0x2c]
push dword [esp + 0x64]
call fcn.005c5870
mov ebx, edx
mov edx, 0x28
mov dword [esp], eax
mul edx
lea ebp, [ebx*8]
lea ebp, [ebp + ebp*4]
lea ecx, [edx + ebp]
cmp eax, dword [esp + 0x1c]
sbb ecx, dword [esp + 0x18]
setb cl
add eax, 0x28
adc ebp, edx
cmp edi, eax
mov edx, esi
sbb edx, ebp
setae dl
xor dl, cl
je 0x5a6a78
mov ebx, dword [esp + 0x58]
mov eax, ebx
and eax, 0xfffffffc
mov ecx, eax
add ecx, 4
mov dword [esp], ecx
mov ebp, dword [esp + 0x24]
mov ecx, ebp
adc ecx, 0
mov dword [esp + 0x34], ecx
lea ecx, [eax + 2]
mov edx, dword [esp + 0x38]
cmp ecx, edx
sbb ebp, ebp
jb 0x5a67bc
xor edx, ecx
mov ecx, dword [esp + 0x24]
xor ecx, ecx
or ecx, edx
sete cl
mov ch, bl
shr ch, 2
and ch, cl
movzx ecx, ch
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
shrd ebx, ecx, 2
mov ebp, ebx
mov ebx, ecx
shr ebx, 2
cmp edi, dword [esp]
sbb esi, dword [esp + 0x34]
setae dl
cmp eax, dword [esp + 0x1c]
sbb ecx, dword [esp + 0x18]
setb al
xor al, dl
mov eax, dword [esp + 0x14]
jne 0x5a67eb
movzx eax, dl
add ebp, eax
adc ebx, 0
jmp 0x5a6a8f
mov ecx, eax
shrd edi, esi, cl
shr esi, cl
xor ecx, ecx
test al, 0x20
je 0x5a6806
mov edi, esi
xor esi, esi
mov ebx, dword [esp + 0xc]
mov eax, 0x5f5e0ff
cmp eax, edi
sbb ecx, esi
jb 0x5a6f7e
cmp edi, 0x63
ja 0x5a7125
xor eax, eax
cmp edi, 0xa
setb al
movzx ecx, word [eax + edi*2 + 0x6035d8]
mov edi, dword [esp + 8]
mov word [edi], cx
sub edi, eax
add edi, 2
jmp 0x5a786e
mov edx, ebx
cmp esi, 7
jb 0x5a68a7
xor eax, eax
movzx ecx, byte [ebp + eax]
mov byte [edi + eax], cl
movzx ecx, byte [ebp + eax + 1]
mov byte [edi + eax + 1], cl
movzx ecx, byte [ebp + eax + 2]
mov byte [edi + eax + 2], cl
movzx ecx, byte [ebp + eax + 3]
mov byte [edi + eax + 3], cl
movzx ecx, byte [ebp + eax + 4]
mov byte [edi + eax + 4], cl
movzx ecx, byte [ebp + eax + 5]
mov byte [edi + eax + 5], cl
movzx ecx, byte [ebp + eax + 6]
mov byte [edi + eax + 6], cl
movzx ecx, byte [ebp + eax + 7]
mov byte [edi + eax + 7], cl
add eax, 8
cmp edx, eax
jne 0x5a684c
add edi, eax
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x10]
mov byte [edi], 0x22
add edi, 1
jmp 0x5a24ba
cmp ebp, 0x270f
ja 0x5a6fc5
imul eax, ebp, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, ebp
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [esi], ax
sub esi, ebx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a72fd
mov dword [esp + 4], esi
cmp edi, 0xf423f
ja 0x5a702d
mov ecx, 0x68db9
mov eax, edi
mul ecx
imul eax, ebx, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov edi, dword [esp + 4]
mov word [edi], ax
sub edi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
add edi, 6
jmp 0x5a7364
mov edx, 0x68db8bb
mov eax, ecx
mul edx
imul eax, ebx, 0x68db8bb
add eax, edx
shr eax, 8
imul edx, eax, 0xffffd8f0
add edx, ecx
imul ebp, eax, 0x147b
mov ecx, ebp
shr ecx, 0x13
imul ebx, edx, 0x147b
shr ebx, 0x13
mov edi, esi
imul esi, ecx, 0xffffff9c
add esi, eax
imul eax, ebx, 0xffffff9c
add eax, edx
xor edx, edx
cmp ebp, 0x500000
setb dl
movzx ecx, word [edx + ecx*2 + 0x6035d8]
mov word [edi], cx
sub edi, edx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [edi + 2], cx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [edi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov edx, dword [esp + 4]
imul eax, edx, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
add ecx, edx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi], ax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi + 2], ax
mov ecx, 0x68db8bb
mov esi, dword [esp]
mov eax, esi
mul ecx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul ebx, ecx, 0xffffff9c
add ebx, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 6], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 8], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 0xa], ax
add edi, 0xc
jmp 0x5a7364
cmp edi, eax
sbb esi, ebp
setae al
movzx eax, al
mov ebp, dword [esp]
add ebp, eax
adc ebx, 0
add dword [esp + 0x20], 1
cmp ebp, 0x6fc10000
mov eax, ebx
sbb eax, 0x2386f2
setb al
mov edx, 0xa4c67fff
add edx, 1
cmp ebp, edx
mov edx, ebx
sbb edx, 0x38d7e
movzx esi, al
setb al
movzx edi, al
lea eax, [edi + esi]
mov edx, dword [esp + 0x20]
sub edx, eax
lea eax, [edx + 0x11]
add edx, 0x16
cmp edx, 0x1a
mov dword [esp], eax
ja 0x5a6c53
test eax, eax
jle 0x5a6dd5
xor esi, 0x11
mov dword [esp + 0x24], esi
neg edi
mov dword [esp + 0x18], edi
push 0
push 0x5f5e100
push ebx
push ebp
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov ebx, eax
mov ecx, 0xd1b71759
mov eax, esi
mul ecx
mov edi, edx
add ebx, ebp
mov dword [esp + 0x14], ebx
shr edi, 0xd
imul ebp, edi, 0xffffd8f0
add ebp, esi
mov ecx, 0x28f5d
mov eax, edi
mul ecx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul eax, ecx, 0xffffff9c
add eax, edx
imul edx, edx, 0xffffff9c
add edx, edi
mov ebx, ecx
add bl, 0x30
mov edi, dword [esp + 8]
mov dword [edi], 0x30303030
mov dword [edi + 0x14], 0x30303030
mov dword [edi + 0x10], 0x30303030
mov dword [edi + 0xc], 0x30303030
mov dword [edi + 8], 0x30303030
mov dword [edi + 4], 0x30303030
mov byte [edi + 1], bl
cmp eax, 0xa
setb byte [esp + 0x1c]
xor ebx, ebx
test ecx, ecx
setne bl
sete cl
and cl, byte [esp + 0x1c]
movzx ecx, cl
movzx esi, word [ecx + eax*2 + 0x6035d8]
mov word [edi + ebx + 1], si
add edi, ebx
add edi, 1
sub edi, ecx
movzx ecx, word [edx + edx + 0x6035d8]
mov word [edi + 2], cx
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5a70b1
mov esi, ecx
imul ecx, ebp, 0x147b
shr ecx, 0x13
mov edx, 0x68db8bb
mov eax, esi
mul edx
imul eax, ecx, 0xffffff9c
add eax, ebp
shr edx, 8
imul esi, edx, 0x147b
shr esi, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [edi + 4], cx
imul ebx, esi, 0xffffff9c
add ebx, edx
movzx eax, word [eax + eax + 0x6035d8]
mov word [edi + 6], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 8], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 0xa], ax
imul eax, edx, 0xffffd8f0
add eax, dword [esp + 0x14]
je 0x5a71f5
imul esi, eax, 0x147b
shr esi, 0x13
imul ebx, esi, 0xffffff9c
add ebx, eax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 0xc], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 0xe], ax
mov eax, 0x10
jmp 0x5a71fa
push 0
push 0x5f5e100
push ebx
push ebp
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov ebx, eax
mov ecx, 0xd1b71759
mov eax, esi
mul ecx
mov edi, edx
add ebx, ebp
mov dword [esp + 0x14], ebx
shr edi, 0xd
imul ebx, edi, 0xffffd8f0
mov ecx, 0x28f5d
mov eax, edi
mul ecx
add ebx, esi
mov dword [esp + 4], ebx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul eax, ecx, 0xffffff9c
add eax, edx
imul ebp, edx, 0xffffff9c
add ebp, edi
mov edx, ecx
add dl, 0x30
xor ebx, ebx
test ecx, ecx
sete bl
mov esi, 2
sub esi, ebx
mov ecx, ebx
neg ecx
cmp eax, 0xa
setb dh
and dh, bl
mov ebx, dword [esp + 8]
mov byte [ebx + 1], dl
movzx edx, dh
movzx edi, word [edx + eax*2 + 0x6035d8]
mov word [ebx + ecx + 2], di
sub esi, edx
movzx ecx, word [ebp + ebp + 0x6035d8]
mov word [ebx + esi + 2], cx
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5a6f1d
mov edx, ecx
mov ebx, dword [esp + 4]
imul ecx, ebx, 0x147b
shr ecx, 0x13
mov edi, 0x68db8bb
mov ebp, edx
mov eax, edx
mul edi
imul edi, ecx, 0xffffff9c
add edi, ebx
shr edx, 8
imul eax, edx, 0x147b
shr eax, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx + esi + 4], cx
imul ecx, eax, 0xffffff9c
add ecx, edx
movzx edi, word [edi + edi + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx + esi + 6], di
movzx edi, word [eax + eax + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx + esi + 8], di
movzx edi, word [ecx + ecx + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx + esi + 0xa], di
mov edi, dword [esp + 8]
imul edx, edx, 0xffffd8f0
add edx, ebp
je 0x5a70f4
imul eax, edx, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edi, ecx
movzx ebx, word [eax + eax + 0x6035d8]
mov ebp, dword [esp + 8]
mov word [ebp + esi + 0xc], bx
add edi, edx
movzx edi, word [edi + edi + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx + esi + 0xe], di
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0xc]
je 0x5a7111
movzx ecx, byte [ecx + edx + 0x6036a0]
mov eax, 0x10
jmp 0x5a7576
mov ecx, dword [esp + 8]
sub ecx, eax
mov dword [esp + 0x14], ecx
push 0
push 0x5f5e100
push ebx
push ebp
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
add eax, ebp
mov ebp, eax
mov ecx, 0xd1b71759
mov eax, esi
mul ecx
mov edi, edx
shr edi, 0xd
mov ecx, 0x28f5d
mov eax, edi
mul ecx
imul ecx, edi, 0xffffd8f0
add ecx, esi
mov dword [esp + 4], ecx
shld edx, eax, 8
lea eax, [edx + edx*4]
lea ecx, [edx + eax*8]
shr ecx, 0xc
imul eax, ecx, 0xffffff9c
add eax, edx
imul esi, edx, 0xffffff9c
add esi, edi
mov edx, ecx
add dl, 0x30
cmp eax, 0xa
setb dh
xor ebx, ebx
test ecx, ecx
mov edi, dword [esp + 0x14]
mov byte [edi + 2], dl
setne bl
sete cl
and cl, dh
movzx ecx, cl
movzx edx, word [ecx + eax*2 + 0x6035d8]
mov word [edi + ebx + 2], dx
add edi, ebx
add edi, 2
sub edi, ecx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [edi + 2], cx
test ebp, ebp
je 0x5a7221
mov ebx, ebp
mov esi, dword [esp + 4]
imul ecx, esi, 0x147b
shr ecx, 0x13
mov edx, 0x68db8bb
mov eax, ebx
mul edx
imul ebx, ecx, 0xffffff9c
add ebx, esi
shr edx, 8
imul eax, edx, 0x147b
shr eax, 0x13
movzx ecx, word [ecx + ecx + 0x6035d8]
mov word [edi + 4], cx
imul esi, eax, 0xffffff9c
add esi, edx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [edi + 6], cx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [edi + 8], cx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [edi + 0xa], cx
imul ecx, edx, 0xffffd8f0
add ecx, ebp
mov ebx, dword [esp + 0xc]
je 0x5a7438
imul eax, ecx, 0x147b
shr eax, 0x13
imul esi, eax, 0xffffff9c
add esi, ecx
movzx ecx, word [eax + eax + 0x6035d8]
mov word [edi + 0xc], cx
movzx ecx, word [esi + esi + 0x6035d8]
mov word [edi + 0xe], cx
mov ecx, 0x10
jmp 0x5a743d
cmp dword [esp + 4], 0
je 0x5a726c
mov ebp, dword [esp + 4]
imul eax, ebp, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx edi, word [eax + eax + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx + esi + 4], di
mov edi, dword [esp + 8]
add edx, ebp
movzx edx, word [edx + edx + 0x6035d8]
mov word [edi + esi + 6], dx
mov ebx, dword [esp + 0xc]
je 0x5a73b4
mov eax, dword [esp + 4]
movzx ecx, byte [ecx + eax + 0x6036a0]
mov eax, 8
jmp 0x5a7576
push 0
push 0x5f5e100
push esi
push edi
call fcn.005c5870
mov esi, eax
mov ecx, 0xfa0a1f00
mul ecx
mov ecx, eax
add ecx, edi
cmp esi, 0x63
ja 0x5a7174
mov ebp, ebx
xor eax, eax
cmp esi, 0xa
setb al
movzx edx, word [eax + esi*2 + 0x6035d8]
mov edi, dword [esp + 8]
mov word [edi], dx
sub edi, eax
add edi, 2
jmp 0x5a780a
cmp ebp, 0xf423f
ja 0x5a7284
mov edx, 0x68db9
mov eax, ebp
mul edx
imul eax, ecx, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, ebp
imul edx, ecx, 0x147b
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a72fd
mov ecx, 0x68db8bb
mov eax, edi
mul ecx
imul eax, ebx, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul edi, ecx, 0x147b
shr edi, 0x13
imul ebx, esi, 0xffffff9c
add ebx, eax
imul eax, edi, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov esi, dword [esp + 4]
mov word [esi], dx
sub esi, ecx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [esi + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov edi, esi
jmp 0x5a7364
test ebp, ebp
je 0x5a745e
imul eax, ebp, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx esi, word [eax + eax + 0x6035d8]
mov word [edi + 4], si
add edx, ebp
movzx edx, word [edx + edx + 0x6035d8]
mov word [edi + 6], dx
je 0x5a7548
movzx ecx, byte [ecx + ebp + 0x6036a0]
jmp 0x5a7552
test ecx, ecx
mov ebx, dword [esp + 0xc]
je 0x5a73c8
movzx ecx, byte [ecx + 0x6036a0]
mov eax, 0xc
jmp 0x5a7576
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov eax, 0x10
jmp 0x5a7576
cmp edi, 0x270f
ja 0x5a7474
imul eax, edi, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, edi
mov esi, ebx
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov edi, dword [esp + 8]
mov word [edi], ax
sub edi, ebx
mov ebx, esi
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
add edi, 4
jmp 0x5a786e
cmp esi, 0x270f
ja 0x5a74e0
mov ebp, ebx
imul eax, esi, 0x147b
mov edx, eax
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, esi
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + edx*2 + 0x6035d8]
mov edx, dword [esp + 8]
mov word [edx], ax
sub edx, ebx
movzx eax, word [edi + edi + 0x6035d8]
mov word [edx + 2], ax
add edx, 4
mov edi, edx
jmp 0x5a780a
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a71df
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0x40]
mov dword [eax], 4
mov dword [eax + 4], str.nan_or_inf_number_is_not_allowed
jmp 0x5a848e
mov eax, 0xc
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
test ebx, ebx
je 0x5a7212
movzx ecx, byte [ebx + 0x6036a0]
jmp 0x5a7686
movzx ecx, byte [esi + 0x6036a0]
add ecx, 2
jmp 0x5a7686
mov ebp, dword [esp + 4]
test ebp, ebp
mov ebx, dword [esp + 0xc]
je 0x5a7636
imul eax, ebp, 0x147b
shr eax, 0x13
imul ecx, eax, 0xffffff9c
mov edx, ecx
movzx esi, word [eax + eax + 0x6035d8]
mov word [edi + 4], si
add edx, ebp
movzx edx, word [edx + edx + 0x6035d8]
mov word [edi + 6], dx
je 0x5a7657
movzx eax, byte [ecx + ebp + 0x6036a0]
jmp 0x5a7661
mov edi, ebx
movzx ecx, byte [ebp + 0x6036a0]
test ebp, ebp
je 0x5a7564
xor eax, eax
jmp 0x5a756b
mov edx, 0x68db8bb
mov eax, ebp
mul edx
imul eax, ecx, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, ebp
imul edx, eax, 0x147b
mov edi, edx
shr edi, 0x13
imul ebx, ecx, 0x147b
shr ebx, 0x13
imul ebp, edi, 0xffffff9c
add ebp, eax
imul eax, ebx, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + edi*2 + 0x6035d8]
mov word [esi], dx
sub esi, ecx
movzx ecx, word [ebp + ebp + 0x6035d8]
mov word [esi + 2], cx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov edi, esi
mov esi, dword [esp]
mov ecx, 0x68db8bb
mov eax, esi
mul ecx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul ebx, ecx, 0xffffff9c
add ebx, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x10]
jmp 0x5a24ba
push dword [esp + 0x10]
push dword [esp + 0x40]
call dword [esp + 0x94]
add esp, 8
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a73a2
lea eax, [esp + 0x9c]
mov dword [eax], 7
mov dword [eax + 4], str.invalid_utf_8_encoding_in_string
jmp 0x5a250f
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov eax, 8
jmp 0x5a7576
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov eax, 0xc
jmp 0x5a7576
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a73f8
lea eax, [esp + 0x9c]
mov dword [eax + 4], str.input_JSON_is_NULL
mov dword [eax], 1
jmp 0x5a250f
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x5a7426
lea eax, [esp + 0x9c]
mov dword [eax], 4
mov dword [eax + 4], str.nan_or_inf_number_is_not_allowed
jmp 0x5a57dc
mov ecx, 0xc
test esi, esi
je 0x5a744a
movzx eax, byte [esi + 0x6036a0]
jmp 0x5a7454
movzx eax, byte [eax + 0x6036a0]
add eax, 2
mov esi, dword [esp]
sub ecx, eax
jmp 0x5a78e2
movzx ecx, byte [edx + 0x6036a0]
test edx, edx
je 0x5a7670
xor eax, eax
jmp 0x5a7677
cmp edi, 0xf423f
ja 0x5a7709
mov ecx, 0x68db9
mov eax, edi
mul ecx
imul eax, esi, 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, ecx, 0x147b
shr edx, 0x13
imul esi, edx, 0xffffff9c
add esi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov edi, dword [esp + 8]
mov word [edi], ax
sub edi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
add edi, 6
jmp 0x5a786e
cmp esi, 0xf423f
ja 0x5a7791
mov ebp, ebx
mov edx, 0x68db9
mov eax, esi
mul edx
imul eax, edx, 0xffffd8f0
add eax, esi
imul esi, eax, 0x147b
shr esi, 0x13
imul edi, esi, 0xffffff9c
add edi, eax
xor eax, eax
cmp edx, 0xa
setb al
movzx edx, word [eax + edx*2 + 0x6035d8]
mov ebx, dword [esp + 8]
mov word [ebx], dx
sub ebx, eax
movzx eax, word [esi + esi + 0x6035d8]
mov word [ebx + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [ebx + 4], ax
add ebx, 6
mov edi, ebx
jmp 0x5a780a
movzx ecx, byte [eax + 0x6036a0]
add ecx, 2
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov eax, 8
jmp 0x5a7686
movzx eax, byte [eax + 0x6036a0]
mov ebx, dword [esp + 0xc]
add ecx, eax
mov eax, 4
sub eax, ecx
add eax, esi
lea ecx, [edi + eax]
xor edx, edx
cmp eax, 2
sete dl
sub ecx, edx
mov esi, dword [esp]
lea edx, [esi - 1]
mov al, byte [edi + 1]
mov byte [edi], al
mov byte [edi + 1], 0x2e
mov word [ecx], 0x2d65
mov eax, edx
shr eax, 0x1f
lea edi, [ecx + eax]
add edi, 1
sar edx, 0x1f
lea eax, [esi + edx]
add eax, 0xffffffff
xor eax, edx
cmp eax, 0x63
ja 0x5a75d0
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [edi], ax
sub edi, ecx
jmp 0x5a7873
imul ecx, eax, 0x290
shr ecx, 0x10
imul edx, ecx, 0xffffff9c
add edx, eax
add cl, 0x30
mov byte [edi], cl
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 1], ax
add edi, 3
jmp 0x5a7876
test dl, 4
jne 0x5a838f
mov eax, 0x602dd8
test edx, 0x40000000
je 0x5a2047
mov eax, 0x602cd8
jmp 0x5a2047
mov eax, 0x602fd8
test edx, 0x40000000
je 0x5a2047
mov eax, 0x602ed8
jmp 0x5a2047
movzx edx, byte [esi + 0x6036a0]
test esi, esi
je 0x5a78cf
xor eax, eax
jmp 0x5a78d6
mov byte [esi], 0x22
add esi, 1
jmp 0x5a70aa
movzx eax, byte [eax + 0x6036a0]
add eax, 2
mov esi, dword [esp]
mov ecx, 8
sub ecx, eax
jmp 0x5a78e2
movzx eax, byte [eax + 0x6036a0]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
add ecx, eax
mov eax, 4
sub eax, ecx
add edx, dword [esp + 0x20]
lea esi, [edx + ebp]
lea ebx, [edx + ebp]
add ebx, 0xffffffff
mov ecx, esi
and ecx, 3
xor edx, edx
cmp ebx, 3
jb 0x5a76c2
and esi, 0xfffffffc
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 4]
add ebx, edx
add ebx, 4
xor edx, edx
mov ebp, dword [ebx + edx - 3]
mov dword [ebx + edx - 4], ebp
add edx, 4
cmp esi, edx
jne 0x5a76b3
add edi, eax
test ecx, ecx
je 0x5a76e6
add edx, dword [esp + 0x3c]
mov eax, dword [esp + 4]
add eax, edx
add eax, 1
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [eax + edx - 1], bl
add edx, 1
cmp ecx, edx
jne 0x5a76d7
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov byte [eax + ecx], 0x2e
add eax, ecx
add eax, 2
cmp eax, edi
mov ebx, dword [esp + 0xc]
jb 0x5a7876
mov edi, eax
jmp 0x5a7876
mov ecx, 0x68db8bb
mov eax, edi
mul ecx
imul eax, esi, 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, eax, 0x147b
mov esi, edx
shr esi, 0x13
imul edi, ecx, 0x147b
shr edi, 0x13
mov ebp, ebx
imul ebx, esi, 0xffffff9c
add ebx, eax
imul eax, edi, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp edx, 0x500000
setb cl
movzx edx, word [ecx + esi*2 + 0x6035d8]
mov esi, dword [esp + 8]
mov word [esi], dx
sub esi, ecx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov ebx, ebp
mov word [esi + 2], cx
movzx ecx, word [edi + edi + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov edi, esi
jmp 0x5a786e
mov edx, 0x68db8bb
mov eax, esi
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, esi
imul esi, edx, 0x147b
mov edi, esi
shr edi, 0x13
imul ebx, eax, 0x147b
shr ebx, 0x13
imul ebp, edi, 0xffffff9c
add ebp, edx
imul edx, ebx, 0xffffff9c
add edx, eax
xor eax, eax
cmp esi, 0x500000
setb al
movzx esi, word [eax + edi*2 + 0x6035d8]
mov edi, dword [esp + 8]
mov word [edi], si
sub edi, eax
movzx eax, word [ebp + ebp + 0x6035d8]
mov ebp, dword [esp + 0xc]
mov word [edi + 2], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov edx, 0x68db8bb
mov eax, ecx
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul esi, eax, 0x147b
shr esi, 0x13
imul ebx, ecx, 0xffffff9c
add ebx, edx
imul edx, esi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [edi], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [edi + 2], ax
movzx eax, word [esi + esi + 0x6035d8]
mov word [edi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [edi + 6], ax
add edi, 8
mov ebx, ebp
mov word [edi], 0x302e
add edi, 2
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x10]
jmp 0x5a24be
test cl, 4
jne 0x5a83a8
mov esi, 0x602dd8
test ecx, 0x40000000
je 0x59e738
mov esi, 0x602cd8
jmp 0x59e738
mov edx, 2
jmp 0x59e746
mov esi, 0x602fd8
test ecx, 0x40000000
je 0x59e738
mov esi, 0x602ed8
jmp 0x59e738
movzx eax, byte [eax + 0x6036a0]
mov esi, dword [esp]
add edx, eax
mov ecx, 4
sub ecx, edx
add edi, ecx
mov ecx, dword [esp + 8]
mov word [ecx], 0x2e30
test esi, esi
mov eax, dword [esp + 0x10]
js 0x5a7901
mov ecx, dword [esp + 0xcc]
jmp 0x5a24be
neg esi
add ecx, 2
push esi
push 0x30
push ecx
call fcn.005c5400
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0xcc]
jmp 0x5a24be
test cl, 4
jne 0x5a83c6
mov ebp, 0x602dd8
test ecx, 0x40000000
je 0x5a20d1
mov ebp, 0x602cd8
jmp 0x5a20d1
mov ebp, 0x602fd8
test ecx, 0x40000000
je 0x5a20d1
mov ebp, 0x602ed8
jmp 0x5a20d1
mov ecx, eax
mov eax, dword [esp + 0xcc]
test al, 0x10
jne 0x5a83e1
mov eax, dword [esp + 0xcc]
test al, 8
jne 0x5a83f3
push ecx
push dword [esp + 0x40]
call dword [esp + 0x94]
add esp, 8
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
cmp dword [esp + 0xd8], 0
jne 0x5a79b2
lea eax, [esp + 0x9c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
mov dword [eax], 4
mov dword [eax + 4], str.nan_or_inf_number_is_not_allowed
jmp 0x5a250f
mov eax, dword [esp]
mov esi, eax
shld ebp, eax, 5
shl esi, 5
mov dword [esp + 0x24], esi
add esi, 0xfffffff0
mov edi, ebp
adc edi, 0xffffffff
mov ebx, 0x6a8346d2
mov eax, esi
mul ebx
mov dword [esp + 0x14], edx
mov ecx, 0x6c07a2c2
mov eax, esi
mul ecx
mov dword [esp + 0x18], edx
mov ecx, eax
mov eax, edi
mul ebx
mov dword [esp + 4], edx
mov dword [esp + 0x20], eax
mov eax, edi
mov edx, 0x6c07a2c2
mul edx
mov ebx, eax
add ecx, dword [esp + 0x14]
adc ebx, dword [esp + 0x18]
adc edx, 0
add ecx, dword [esp + 0x20]
adc ebx, dword [esp + 4]
adc edx, 0
mov dword [esp + 0x14], edx
mov eax, 0x9e19db92
lea ecx, [eax + 0x16c94017]
mov dword [esp + 0x50], ecx
mov eax, esi
mul ecx
mov dword [esp + 0x18], edx
mov dword [esp + 4], eax
mov eax, esi
mov edx, 0x9e19db92
mul edx
mov dword [esp + 0x1c], edx
mov esi, eax
mov eax, edi
mul ecx
mov dword [esp + 0x20], edx
mov ecx, eax
mov eax, edi
mov edx, 0x9e19db92
mul edx
add esi, dword [esp + 0x18]
adc eax, dword [esp + 0x1c]
adc edx, 0
add esi, ecx
adc eax, dword [esp + 0x20]
adc edx, 0
mov ecx, edx
mov edx, dword [esp + 4]
add edx, ebx
mov dword [esp + 4], edx
mov edi, dword [esp + 0x14]
adc esi, edi
setb byte [esp + 0x18]
cmp edx, ebx
mov edx, esi
sbb edx, edi
setb dl
or dl, byte [esp + 0x18]
movzx ebx, dl
add ebx, eax
adc ecx, 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], 0
mov eax, 1
cmp eax, dword [esp + 4]
mov eax, 0
sbb eax, esi
setb byte [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov eax, ecx
mov edx, 0x6a8346d2
mul edx
mov dword [esp + 0x20], edx
mov eax, ecx
mov esi, 0x6c07a2c2
mul esi
mov dword [esp + 4], edx
mov ecx, eax
mov eax, ebp
mov edx, 0x6a8346d2
mul edx
mov dword [esp + 0x58], edx
mov edi, eax
mov dword [esp + 0x60], eax
mov eax, ebp
mul esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], edx
movzx esi, byte [esp + 0x14]
or esi, ebx
mov dword [esp + 0x38], esi
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 4]
adc esi, eax
mov ebx, edx
adc ebx, 0
add ecx, edi
adc esi, dword [esp + 0x58]
mov dword [esp + 4], esi
adc ebx, 0
mov ecx, dword [esp + 0x24]
mov eax, ecx
mov edi, dword [esp + 0x50]
mul edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, 0x9e19db92
mul ecx
mov ecx, edx
mov esi, eax
mov eax, ebp
mul edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
mov eax, ebp
mov edx, 0x9e19db92
mul edx
mov ebp, eax
mov dword [esp + 0x28], eax
mov edi, edx
xor eax, eax
imul eax, eax, 0x9e19db92
mov dword [esp + 0x2c], eax
add esi, dword [esp + 0x30]
adc ecx, ebp
adc edx, eax
add esi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
adc eax, 0
add eax, ecx
adc edx, 0
mov ecx, edx
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 4]
add edx, ebp
mov dword [esp + 0x20], edx
adc esi, ebx
setb byte [esp + 0x30]
cmp edx, ebp
mov edx, esi
sbb edx, ebx
setb dl
or dl, byte [esp + 0x30]
movzx ebp, dl
add ebp, eax
adc ecx, 0
mov dword [esp + 4], ecx
mov eax, 1
cmp eax, dword [esp + 0x20]
mov eax, 0
sbb eax, esi
setb byte [esp + 0x20]
mov ebx, dword [esp + 0x24]
or ebx, 0x10
mov eax, ebx
mov ecx, 0x6a8346d2
mul ecx
mov ecx, edx
mov eax, ebx
mov edx, 0x6c07a2c2
mul edx
mov esi, edx
movzx edx, byte [esp + 0x20]
mov dword [esp + 0x24], ebp
or edx, ebp
mov dword [esp + 0x20], edx
add eax, ecx
adc esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
adc ecx, 0
add eax, dword [esp + 0x60]
adc esi, dword [esp + 0x58]
adc ecx, 0
mov dword [esp + 0x18], ecx
mov eax, ebx
mul dword [esp + 0x50]
mov ecx, edx
mov ebp, eax
mov eax, ebx
mov edx, 0x9e19db92
mul edx
add eax, ecx
adc edx, dword [esp + 0x28]
adc edi, dword [esp + 0x2c]
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
adc ecx, 0
add ecx, edx
mov dword [esp + 0x14], ecx
adc edi, 0
add ebp, esi
mov ecx, dword [esp + 0x18]
adc eax, ecx
setb bl
cmp ebp, esi
mov edx, eax
sbb edx, ecx
setb dl
or dl, bl
movzx ecx, dl
add ecx, dword [esp + 0x14]
adc edi, 0
mov dword [esp + 0x14], 1
mov edx, 1
cmp edx, ebp
sbb dword [esp + 0x4c], eax
setb al
movzx ebp, al
or ebp, ecx
mov eax, dword [esp]
and eax, 1
add dword [esp + 0x38], eax
adc dword [esp + 0x1c], 0
sub ebp, eax
sbb edi, 0
mov dword [esp], edi
cmp dword [esp + 0x20], 0x28
mov eax, dword [esp + 4]
sbb eax, 0
jb 0x5a7d01
push 0
push 0x28
push dword [esp + 0xc]
push dword [esp + 0x30]
call fcn.005c5870
mov esi, edx
mov ecx, 0x28
mov dword [esp + 0x18], eax
mul ecx
lea ecx, [esi*8]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx]
cmp eax, dword [esp + 0x38]
sbb edi, dword [esp + 0x1c]
setb bl
add eax, 0x28
adc ecx, edx
cmp ebp, eax
mov edx, dword [esp]
sbb edx, ecx
setae dl
xor dl, bl
je 0x5a7e04
mov eax, SysReAllocString
mov edx, 0xfffffffc
mov esi, dword [esp + 4]
and eax, esi
and edx, dword [esp + 0x24]
mov ebx, edx
add ebx, 4
mov ecx, eax
adc ecx, 0
mov dword [esp + 0x18], ecx
mov ecx, edx
or ecx, 2
cmp ecx, dword [esp + 0x20]
mov edi, eax
sbb edi, esi
jb 0x5a7d59
mov esi, dword [esp + 0x20]
xor esi, ecx
mov ecx, dword [esp + 4]
xor ecx, eax
or ecx, esi
sete byte [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov ch, cl
shr ch, 2
and ch, byte [esp + 0x14]
movzx ecx, ch
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 4]
shrd edi, ecx, 2
shr ecx, 2
mov dword [esp + 4], ecx
cmp ebp, ebx
mov ecx, dword [esp + 0x18]
sbb dword [esp], ecx
setae cl
cmp edx, dword [esp + 0x38]
sbb eax, dword [esp + 0x1c]
setb al
xor al, cl
jne 0x5a7d8e
movzx eax, cl
mov dword [esp + 0x14], eax
add edi, dword [esp + 0x14]
adc dword [esp + 4], 0
mov ebp, 0xfffffebc
jmp 0x5a7e21
lea edi, [esi + 1]
mov eax, dword [esp + 0xcc]
test al, al
jns 0x5a7dc0
add esi, 3
cmp esi, ebp
jae 0x5a842c
mov byte [edi], 0xa
add edi, 1
mov edx, dword [esp + 0x40]
mov eax, edi
sub eax, edx
mov byte [edi], 0
mov ecx, dword [esp + 0x6c]
mov dword [ecx], eax
cmp dword [esp + 0xd8], 0
jne 0x5a7de9
lea eax, [esp + 0x9c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
mov dword [eax], 0
mov dword [eax + 4], str.success
mov eax, edx
jmp 0x5a2511
cmp ebp, eax
sbb dword [esp], ecx
setae al
movzx eax, al
mov edi, dword [esp + 0x18]
add edi, eax
adc esi, 0
mov ebp, 0xfffffebd
mov dword [esp + 4], esi
mov eax, dword [esp + 8]
lea esi, [eax + 1]
mov eax, 0xa4c67fff
mov ecx, edi
cmp eax, edi
mov eax, 0x38d7e
sbb eax, dword [esp + 4]
jae 0x5a7f63
push 0
push 0x5f5e100
push dword [esp + 0xc]
mov ebx, edi
push edi
call fcn.005c5870
mov edi, eax
imul eax, eax, 0xfa0a1f00
add eax, ebx
mov dword [esp], eax
push 0x2386f2
push 0x6fc10000
push dword [esp + 0xc]
push ebx
call fcn.005c5870
imul ecx, eax, 0xfa0a1f00
add ecx, edi
add al, 0x30
mov byte [esi], al
mov eax, 0x6fc10000
add eax, 0xffffffff
mov edx, 0x2386f2
adc edx, 0xffffffff
cmp eax, ebx
sbb edx, dword [esp + 4]
adc esi, 0
mov edx, 0x68db8bb
mov eax, ecx
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul ebx, eax, 0x147b
shr ebx, 0x13
imul edi, ecx, 0xffffff9c
add edi, edx
imul edx, ebx, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 6], ax
mov ecx, dword [esp]
mov eax, ecx
mov edx, 0x68db8bb
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul ebx, ecx, 0xffffff9c
add ebx, edx
imul edx, edi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi + 8], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 0xa], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 0xc], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 0xe], ax
add esi, 0x10
jmp 0x5a82a9
mov eax, edi
cmp edi, 0x5f5e100
mov eax, dword [esp + 4]
sbb eax, 0
jb 0x5a7fb9
push 0
push 0x5f5e100
push dword [esp + 0xc]
mov ebx, edi
push edi
call fcn.005c5870
mov edi, eax
mov dword [esp], edx
mov ecx, 0xfa0a1f00
mul ecx
mov ecx, eax
add ecx, ebx
cmp edi, 0x63
ja 0x5a7ffb
xor eax, eax
cmp edi, 0xa
setb al
movzx edx, word [eax + edi*2 + 0x6035d8]
mov word [esi], dx
sub esi, eax
add esi, 2
jmp 0x5a8247
mov eax, edi
cmp edi, 0x63
ja 0x5a8045
xor eax, eax
cmp edi, 0xa
setb al
movzx ecx, word [eax + edi*2 + 0x6035d8]
mov word [esi], cx
sub esi, eax
add esi, 2
jmp 0x5a82a9
mov esi, ebx
mov ebp, edi
mov eax, dword [esp + 0xcc]
test al, al
js 0x5a8171
add ebp, esi
jmp 0x5a8188
cmp edi, 0x270f
ja 0x5a809c
imul edx, edi, 0x147b
mov dword [esp], edx
shr edx, 0x13
imul ebx, edx, 0xffffff9c
add ebx, edi
xor eax, eax
cmp dword [esp], 0x500000
setb al
movzx edx, word [eax + edx*2 + 0x6035d8]
mov word [esi], dx
sub esi, eax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a8247
mov eax, edi
cmp edi, 0x270f
ja 0x5a8105
imul eax, edi, 0x147b
mov ecx, eax
shr ecx, 0x13
imul edx, ecx, 0xffffff9c
add edx, edi
xor ebx, ebx
cmp eax, 0x500000
setb bl
movzx eax, word [ebx + ecx*2 + 0x6035d8]
mov word [esi], ax
sub esi, ebx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
add esi, 4
jmp 0x5a82a9
mov eax, ebp
jmp 0x5a850d
mov eax, edi
jmp 0x5a850d
cmp edi, 0xf423f
ja 0x5a81cf
mov edx, 0x68db9
mov eax, edi
mul edx
imul eax, dword [esp], 0x68db9
add eax, edx
imul edx, eax, 0xffffd8f0
add edx, edi
imul edi, edx, 0x147b
shr edi, 0x13
imul ebx, edi, 0xffffff9c
add ebx, edx
xor edx, edx
cmp eax, 0xa
setb dl
movzx eax, word [edx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, edx
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a8247
mov eax, edi
cmp edi, 0xf423f
ja 0x5a8314
mov ecx, 0x68db9
mov eax, edi
mul ecx
imul eax, dword [esp + 4], 0x68db9
add eax, edx
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edx, ecx, 0x147b
shr edx, 0x13
imul edi, edx, 0xffffff9c
add edi, ecx
xor ecx, ecx
cmp eax, 0xa
setb cl
movzx eax, word [ecx + eax*2 + 0x6035d8]
mov word [esi], ax
sub esi, ecx
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
add esi, 6
jmp 0x5a82a9
lea eax, [esi + ebp]
add eax, 3
cmp eax, ecx
jae 0x5a843a
add ebp, esi
add ebp, 1
mov byte [ebp - 1], 0xa
mov ecx, ebp
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0
mov ecx, dword [esp + 0x6c]
mov dword [ecx], eax
cmp dword [esp + 0xd8], 0
jne 0x5a81b2
lea eax, [esp + 0x9c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
mov dword [eax], 0
mov dword [eax + 4], str.success
mov eax, dword [esp + 0x10]
jmp 0x5a2511
mov edx, 0x68db8bb
mov eax, edi
mul edx
imul eax, dword [esp], 0x68db8bb
add eax, edx
shr eax, 8
imul edx, eax, 0xffffd8f0
add edx, edi
mov dword [esp + 4], edx
imul edi, eax, 0x147b
shr edi, 0x13
imul ebx, edx, 0x147b
shr ebx, 0x13
imul edx, edi, 0xffffff9c
mov dword [esp], edx
add dword [esp], eax
imul eax, ebx, 0xffffff9c
add eax, dword [esp + 4]
movzx edx, word [edi + edi + 0x6035d9]
mov word [esi], dx
mov edx, dword [esp]
movzx edx, word [edx + edx + 0x6035d8]
mov word [esi + 1], dx
movzx edx, word [ebx + ebx + 0x6035d8]
mov word [esi + 3], dx
movzx eax, word [eax + eax + 0x6035d8]
mov word [esi + 5], ax
add esi, 7
mov edx, 0x68db8bb
mov eax, ecx
mul edx
shr edx, 8
imul eax, edx, 0xffffd8f0
add eax, ecx
imul ecx, edx, 0x147b
shr ecx, 0x13
imul edi, eax, 0x147b
shr edi, 0x13
imul ebx, ecx, 0xffffff9c
add ebx, edx
imul edx, edi, 0xffffff9c
add edx, eax
movzx eax, word [ecx + ecx + 0x6035d8]
mov word [esi], ax
movzx eax, word [ebx + ebx + 0x6035d8]
mov word [esi + 2], ax
movzx eax, word [edi + edi + 0x6035d8]
mov word [esi + 4], ax
movzx eax, word [edx + edx + 0x6035d8]
mov word [esi + 6], ax
add esi, 8
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov al, byte [ecx + edx + 1]
mov byte [ecx + edx], al
mov byte [ecx + edx + 1], 0x2e
sub ebp, dword [esp + 8]
add ebp, 0xfffffffe
lea eax, [esi + 5]
movzx edx, byte [eax - 6]
add ebp, 1
add eax, 0xffffffff
add esi, 0xffffffff
cmp dl, 0x30
je 0x5a82c7
add ebp, esi
xor ecx, ecx
cmp dl, 0x2e
setne cl
lea edi, [eax + ecx]
mov word [eax + ecx - 5], 0x2d65
imul edx, ebp, 0xfffffd70
shr edx, 0x10
imul esi, edx, 0xffffff9c
sub esi, ebp
add dl, 0x30
mov byte [eax + ecx - 3], dl
movzx edx, word [esi + esi + 0x6035d8]
mov word [eax + ecx - 2], dx
jmp 0x5a7364
mov ecx, 0x68db8bb
mov eax, edi
mul ecx
imul eax, dword [esp + 4], 0x68db8bb
add eax, edx
shr eax, 8
imul ecx, eax, 0xffffd8f0
add ecx, edi
imul edi, eax, 0x147b
mov dword [esp], edi
shr edi, 0x13
imul ebx, ecx, 0x147b
shr ebx, 0x13
imul edx, edi, 0xffffff9c
add edx, eax
imul eax, ebx, 0xffffff9c
add eax, ecx
xor ecx, ecx
cmp dword [esp], 0x500000
setb cl
movzx edi, word [ecx + edi*2 + 0x6035d8]
mov word [esi], di
sub esi, ecx
movzx ecx, word [edx + edx + 0x6035d8]
mov word [esi + 2], cx
movzx ecx, word [ebx + ebx + 0x6035d8]
mov word [esi + 4], cx
movzx eax, word [eax + eax + 0x6035d8]
jmp 0x5a82a2
mov ebx, 0x602bd8
test edx, 0x40000000
je 0x5a83a1
mov ebx, 0x602ad8
mov eax, ebx
jmp 0x5a2047
mov esi, 0x602bd8
test ecx, 0x40000000
je 0x5a83ba
mov esi, 0x602ad8
mov ecx, dword [esp + 0xcc]
jmp 0x59e738
mov ebp, 0x602bd8
test ecx, 0x40000000
je 0x5a20d1
mov ebp, 0x602ad8
jmp 0x5a20d1
mov eax, ecx
mov dword [ecx], 0x6c6c756e
mov edi, esi
add edi, 4
jmp 0x5a24b3
or dword [esp], ebp
je 0x5a840a
mov eax, ecx
mov dword [ecx], 0x4e614e
mov edi, esi
add edi, 3
jmp 0x5a24b3
mov eax, ecx
mov byte [ecx], 0x2d
shr ebx, 0x1f
mov dword [ecx + ebx + 4], 0x7974696e
mov dword [ecx + ebx], 0x69666e49
lea edi, [esi + ebx]
add edi, 8
jmp 0x5a24b3
cmp dword [esp + 0x20], 5
ja 0x5a844f
mov esi, 8
jmp 0x5a845b
cmp dword [esp + 0x38], 5
ja 0x5a84f5
mov edi, 8
jmp 0x5a8501
mov esi, dword [esp + 0x20]
shr esi, 1
add esi, 7
and esi, 0xfffffff8
add esi, dword [esp + 0x20]
jae 0x5a84ae
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0xd8]
test eax, eax
mov ecx, dword [esp + 0x40]
jne 0x5a8481
lea eax, [esp + 0x9c]
mov dword [eax], 2
mov dword [eax + 4], str.memory_allocation_failed
xor eax, eax
test ecx, ecx
je 0x5a2511
push ecx
push dword [esp + 0x40]
call dword [esp + 0x94]
xor eax, eax
add esp, 8
jmp 0x5a2511
push esi
push dword [esp + 0x24]
push dword [esp + 0x48]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8461
sub esi, ebx
mov dword [esp + 0xc], eax
add esi, eax
sub ebp, dword [esp + 0x40]
add ebp, eax
push ebx
push ebp
push esi
call fcn.005c4cd0
add esp, 0xc
sub edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
add edi, eax
mov dword [esp + 0x40], eax
jmp 0x5a7dba
mov edi, dword [esp + 0x38]
shr edi, 1
add edi, 7
and edi, 0xfffffff8
mov eax, dword [esp + 0x38]
add eax, edi
jae 0x5a855a
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov dword [ecx], 0
cmp dword [esp + 0xd8], 0
je 0x5a852a
mov ecx, dword [esp + 0xd8]
jmp 0x5a8531
lea ecx, [esp + 0x9c]
mov dword [ecx], 2
mov dword [ecx + 4], str.memory_allocation_failed
test eax, eax
je 0x5a250f
push eax
push dword [esp + 0x40]
call dword [esp + 0x94]
add esp, 8
jmp 0x5a250f
push eax
push dword [esp + 0x3c]
push dword [esp + 0x18]
push dword [esp + 0x48]
call dword [esp + 0x8c]
add esp, 0x10
test eax, eax
je 0x5a8509
mov ebx, eax
add edi, eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add eax, ecx
sub eax, dword [esp + 0x54]
add eax, edi
mov edi, esi
lea eax, [eax + esi*8]
mov esi, dword [esp + 0x10]
sub ecx, esi
add ecx, ebx
lea ecx, [ecx + edi*8]
push dword [esp + 0xc]
push ecx
push eax
call fcn.005c4cd0
add esp, 0xc
sub ebp, esi
add ebp, ebx
add ebp, edi
add ebp, 1
mov dword [esp + 0x10], ebx
jmp 0x5a8184