Function at 0x472af0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
movups xmm0, xmmword [0x4a8ed4]
mov eax, ecx
mov dword [esp + 0xc], eax
push esi
push edi
movups xmmword [esp + 0x50], xmm0
test eax, eax
je 0x474c0f
mov esi, dword [eax + 0x18]
cmp esi, 1
jne 0x4737a0
mov esi, dword [eax]
movzx eax, byte [esi]
and eax, 7
add eax, 0xfffffffe
cmp eax, 5
ja case.default.0x472b38
jmp dword [eax*4 + 0x474c18]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
shrd ecx, eax, 8
mov dword [esp + 0x14], ecx
cmp ecx, 0x2aaaaaa7
jae case.default.0x472b38
lea eax, [ecx + ecx*2]
lea eax, [eax*2 + 4]
push eax
push 0
call fcn.00459ec0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je case.default.0x472b38
mov edx, dword [esp + 0x14]
lea esi, [eax + 1]
add edx, edi
mov byte [eax], 0x22
mov dword [esp + 0x34], edx
nop dword [eax]
mov cl, byte [edi]
movzx eax, cl
cmp byte [eax + 0x4a6030], 0
jne 0x472df5
lea eax, [edi + 1]
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
cmp byte [eax + 0x4a6030], 0
je 0x472bc1
mov edi, dword [esp + 0x14]
mov byte [esi], cl
inc esi
jmp 0x472df5
movzx eax, byte [edi + 2]
cmp byte [eax + 0x4a6030], 0
je 0x472bdf
mov ax, word [edi]
mov word [esi], ax
add esi, 2
add edi, 2
jmp 0x472df5
movzx eax, byte [edi + 3]
cmp byte [eax + 0x4a6030], 0
je 0x472c03
mov ax, word [edi]
mov word [esi], ax
mov al, byte [edi + 2]
mov byte [esi + 2], al
add esi, 3
add edi, 3
jmp 0x472df5
movzx eax, byte [edi + 4]
cmp byte [eax + 0x4a6030], 0
je 0x472c1f
mov eax, dword [edi]
mov dword [esi], eax
add esi, 4
add edi, 4
jmp 0x472df5
movzx eax, byte [edi + 5]
cmp byte [eax + 0x4a6030], 0
je 0x472c41
mov eax, dword [edi]
mov dword [esi], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
add esi, 5
add edi, 5
jmp 0x472df5
movzx eax, byte [edi + 6]
cmp byte [eax + 0x4a6030], 0
je 0x472c65
mov eax, dword [edi]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
add esi, 6
add edi, 6
jmp 0x472df5
movzx eax, byte [edi + 7]
cmp byte [eax + 0x4a6030], 0
je 0x472c8f
mov eax, dword [edi]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
mov al, byte [edi + 6]
mov byte [esi + 6], al
add esi, 7
add edi, 7
jmp 0x472df5
lea eax, [edi + 8]
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
cmp byte [eax + 0x4a6030], 0
je 0x472cb8
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x14]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
jmp 0x472df5
movzx eax, byte [edi + 9]
cmp byte [eax + 0x4a6030], 0
je 0x472cde
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov al, byte [edi + 8]
mov byte [esi + 8], al
add esi, 9
add edi, 9
jmp 0x472df5
movzx eax, byte [edi + 0xa]
cmp byte [eax + 0x4a6030], 0
je 0x472d06
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov ax, word [edi + 8]
mov word [esi + 8], ax
add esi, 0xa
add edi, 0xa
jmp 0x472df5
movzx eax, byte [edi + 0xb]
cmp byte [eax + 0x4a6030], 0
je 0x472d34
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov ax, word [edi + 8]
mov word [esi + 8], ax
mov al, byte [edi + 0xa]
mov byte [esi + 0xa], al
add esi, 0xb
add edi, 0xb
jmp 0x472df5
movzx eax, byte [edi + 0xc]
cmp byte [eax + 0x4a6030], 0
je 0x472d5a
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
add esi, 0xc
add edi, 0xc
jmp 0x472df5
movzx eax, byte [edi + 0xd]
cmp byte [eax + 0x4a6030], 0
je 0x472d83
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov al, byte [edi + 0xc]
mov byte [esi + 0xc], al
add esi, 0xd
add edi, 0xd
jmp 0x472df5
movzx eax, byte [edi + 0xe]
cmp byte [eax + 0x4a6030], 0
je 0x472dae
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov ax, word [edi + 0xc]
mov word [esi + 0xc], ax
add esi, 0xe
add edi, 0xe
jmp 0x472df5
movzx eax, byte [edi + 0xf]
cmp byte [eax + 0x4a6030], 0
je 0x472ddf
movq xmm0, qword [edi]
movq qword [esi], xmm0
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov ax, word [edi + 0xc]
mov word [esi + 0xc], ax
mov al, byte [edi + 0xe]
mov byte [esi + 0xe], al
add esi, 0xf
add edi, 0xf
jmp 0x472df5
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
add esi, 0x10
add edi, 0x10
jmp 0x472b90
inc edi
mov edx, dword [esp + 0x34]
cmp edi, edx
jae 0x472faf
mov dh, byte [edi]
movzx eax, dh
movzx ecx, byte [eax + 0x4a6030]
cmp ecx, 5
ja case.default.0x472e0e
jmp dword [ecx*4 + 0x474c30]
mov ax, word [eax*2 + 0x4a9150]
mov word [esi], ax
add esi, 2
jmp 0x472df0
mov dword [esp + 0x38], 0x3030755c
mov eax, dword [esp + 0x38]
mov dword [esi], eax
movzx eax, byte [edi]
mov ax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 4], ax
add esi, 6
jmp 0x472df0
mov cl, byte [edi + 1]
mov word [esp + 0x18], 0x755c
movzx eax, word [esp + 0x18]
mov word [esi], ax
movzx edx, dh
and edx, 0x1f
movzx eax, cl
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
shr eax, 8
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 2], ax
movzx eax, dl
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 4], ax
add esi, 6
add edi, 2
jmp case.default.0x472e0e
mov cl, byte [edi + 1]
mov dl, byte [edi + 2]
mov word [esp + 0x30], 0x755c
movzx eax, word [esp + 0x30]
mov word [esi], ax
movzx ecx, cl
and ecx, 0x3f
movzx eax, dh
shl eax, 6
or ecx, eax
movzx eax, dl
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx ecx, cx
mov eax, ecx
shr eax, 8
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 2], ax
movzx eax, cl
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 4], ax
add esi, 6
add edi, 3
jmp case.default.0x472e0e
movzx eax, byte [edi + 1]
and eax, 0x3f
movzx edx, dh
and edx, 7
mov word [esp + 0x1c], 0x755c
shl edx, 6
or edx, eax
mov word [esp + 0x40], 0x755c
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, word [esp + 0x1c]
mov word [esi], ax
sub edx, 0x10000
mov ecx, edx
and edx, 0x3ff
shr ecx, 0xa
add edx, 0xdc00
add ecx, 0xd800
mov eax, ecx
shr eax, 8
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 2], ax
movzx eax, cl
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 4], ax
movzx eax, word [esp + 0x40]
mov word [esi + 6], ax
mov eax, edx
shr eax, 8
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 8], ax
movzx eax, dl
movzx eax, word [eax*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [esi + 0xa], ax
add esi, 0xc
add edi, 4
jmp case.default.0x472e0e
mov byte [esi], dh
inc esi
mov edx, dword [esp + 0x34]
inc edi
jmp 0x472b90
mov byte [esi], 0x22
lea edi, [esi + 1]
mov edx, dword [esp + 0x3c]
mov eax, edx
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x20
push 0
call fcn.00459ec0
mov ecx, eax
add esp, 8
mov dword [esp + 0x3c], ecx
test ecx, ecx
je case.default.0x472b38
mov eax, dword [esi]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [esi]
and eax, 0x10
mov dword [esp + 0x4c], edx
or eax, 0
je 0x473015
push edx
push edi
mov edx, 1
call fcn.00470d70
add esp, 8
mov edi, eax
jmp 0x47367a
mov esi, edi
mov eax, edx
mov edx, dword [esp + 0x14]
neg esi
mov dword [esp + 0xc], esi
adc eax, 0
neg eax
mov dword [esp + 0x38], eax
and edx, 8
je 0x473036
mov edx, 1
cmp dword [esp + 0x4c], 0
jg 0x47304d
jl 0x473043
test edi, edi
jae 0x47304d
mov dword [esp + 0x14], 1
jmp 0x473055
mov dword [esp + 0x14], 0
mov byte [ecx], 0x2d
and edx, dword [esp + 0x14]
jne 0x47306c
mov eax, dword [esp + 0x4c]
mov esi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], eax
lea edi, [edx + ecx]
mov dword [esp + 0x10], edi
test eax, eax
ja 0x4731ed
jb 0x473089
cmp esi, 0x5f5e100
jae 0x4731ed
cmp esi, 0x64
jae 0x4730b2
cmp esi, 0xa
sbb ecx, ecx
neg ecx
mov ax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
mov eax, 2
sub eax, ecx
add edi, eax
mov dword [esp + 0x10], edi
jmp 0x47367a
cmp esi, 0x2710
jae 0x4730f4
imul edx, esi, 0x147b
shr edx, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
sub edi, ecx
imul eax, edx, 0x64
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
add edi, 4
mov dword [esp + 0x10], edi
jmp 0x47367a
mov eax, esi
cmp esi, 0xf4240
jae 0x47315b
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0xc], esi
imul esi, esi, 0x147b
shr esi, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
sub edi, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0xc]
mov word [edi + 2], ax
imul eax, esi, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
add edi, 6
mov dword [esp + 0x10], edi
jmp 0x47367a
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
mov dword [esp + 0x14], edi
sub esi, eax
mov dword [esp + 0xc], esi
imul edx, dword [esp + 0xc], 0x147b
imul esi, edi, 0x147b
mov edi, dword [esp + 0x10]
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
sbb ecx, ecx
neg ecx
sub dword [esp + 0x10], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x10]
mov word [edi], ax
mov edi, dword [esp + 0x14]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 4], ax
imul eax, edx, 0x64
mov edx, dword [esp + 0xc]
sub edx, eax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 6], ax
add ecx, 8
mov dword [esp + 0x10], ecx
mov edi, ecx
jmp 0x47367a
mov eax, esi
mov ecx, 0x8461cefd
mul ecx
mov edi, 0xabcc7711
mov dword [esp + 0x68], eax
mov esi, edx
mov eax, dword [esp + 0xc]
mul edi
mov edi, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x38]
mul ecx
mov ecx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x38]
mov edx, 0xabcc7711
mul edx
add ecx, esi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x14]
adc edx, 0
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x2c]
add edi, ecx
mov ecx, dword [esp + 0x4c]
adc ecx, 0
mov dword [esp + 0x68], edi
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x34]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0x1a
shr ecx, 0x1a
cmp dword [esp + 0x38], 0x2386f2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2c], esi
ja 0x47345f
jb 0x473283
cmp ecx, 0x6fc10000
jae 0x47345f
imul eax, esi, 0x5f5e100
sub ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, 0x68db8bb
cmp esi, 0x64
jae 0x4732bd
mov edi, dword [esp + 0x10]
cmp esi, 0xa
sbb ecx, ecx
neg ecx
mov ax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
mov eax, 2
sub eax, ecx
add edi, eax
jmp 0x4733e8
cmp esi, 0x2710
jae 0x4732ff
mov edi, dword [esp + 0x10]
imul edx, esi, 0x147b
shr edx, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
sub edi, ecx
imul eax, edx, 0x64
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
add edi, 4
jmp 0x4733e8
mov eax, esi
cmp esi, 0xf4240
jae 0x473366
mov ecx, 0x68db9
mov edi, dword [esp + 0x10]
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x2c], esi
imul esi, esi, 0x147b
shr esi, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
sub edi, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x2c]
mov word [edi + 2], ax
imul eax, esi, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
add edi, 6
jmp 0x4733e8
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
mov dword [esp + 0x14], edi
sub esi, eax
mov dword [esp + 0x2c], esi
imul edx, dword [esp + 0x2c], 0x147b
imul esi, edi, 0x147b
mov edi, dword [esp + 0x10]
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
sbb ecx, ecx
neg ecx
sub dword [esp + 0x10], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x10]
mov word [edi + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
imul eax, edx, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 6], ax
add edi, 8
mov ecx, dword [esp + 0xc]
mov edx, 0x68db8bb
mov eax, ecx
mul edx
mov esi, edx
shr esi, 8
imul eax, esi, 0x2710
sub ecx, eax
mov dword [esp + 0xc], ecx
imul edx, dword [esp + 0xc], 0x147b
imul ecx, esi, 0x147b
shr edx, 0x13
shr ecx, 0x13
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
imul eax, ecx, 0x64
mov ecx, dword [esp + 0xc]
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
imul eax, edx, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 6], ax
add edi, 8
jmp 0x47367a
imul eax, esi, 0x5f5e100
mov edi, 0x346dc5d6
sub ecx, eax
mov eax, esi
mov dword [esp + 0xc], ecx
mov ecx, 0x3886594b
mul ecx
mov dword [esp + 0x68], eax
mov esi, edx
mov eax, dword [esp + 0x2c]
mul edi
mov edi, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x34]
mul ecx
mov ecx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x34]
mov edx, 0x346dc5d6
mul edx
add ecx, esi
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x14]
adc edx, 0
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x38]
add edi, ecx
mov ecx, dword [esp + 0x4c]
adc ecx, 0
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x2c]
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x74]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0xb
mov ecx, 0x68db8bb
imul eax, esi, 0x2710
sub edi, eax
mov eax, esi
mov dword [esp + 0x2c], edi
cmp esi, 0xf4240
jae 0x473552
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x38], esi
imul esi, esi, 0x147b
shr esi, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edx, dword [esp + 0x10]
mov word [edx], ax
sub edx, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x38]
mov word [edx + 2], ax
imul eax, esi, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx + 4], ax
add edx, 6
jmp 0x4735d8
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
mov dword [esp + 0x14], edi
sub esi, eax
mov dword [esp + 0x38], esi
imul edx, dword [esp + 0x38], 0x147b
imul esi, edi, 0x147b
mov edi, dword [esp + 0x10]
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
sbb ecx, ecx
neg ecx
sub dword [esp + 0x10], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x10]
mov word [edi], ax
mov edi, dword [esp + 0x14]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x2c]
mov word [ecx + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 4], ax
imul eax, edx, 0x64
mov edx, dword [esp + 0x38]
sub edx, eax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
lea edx, [ecx + 8]
mov word [ecx + 6], ax
imul ecx, edi, 0x147b
shr ecx, 0x13
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx], ax
imul eax, ecx, 0x64
mov ecx, 0x68db8bb
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0xc]
mov word [edx + 2], ax
add edx, 4
mov eax, edi
mov dword [esp + 0x14], edx
mul ecx
mov esi, edx
shr esi, 8
imul eax, esi, 0x2710
imul ecx, esi, 0x147b
sub edi, eax
shr ecx, 0x13
imul edx, edi, 0x147b
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x14]
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
shr edx, 0x13
mov word [edi], ax
imul eax, ecx, 0x64
mov ecx, edi
mov edi, dword [esp + 0xc]
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 4], ax
imul eax, edx, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
lea edi, [ecx + 8]
mov word [ecx + 6], ax
test edi, edi
jne 0x472fb5
mov eax, dword [esp + 0x3c]
push eax
push dword [esp + 0x60]
call dword [esp + 0x60]
add esp, 8
xor edx, edx
mov eax, edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 8
push 0
call fcn.00459ec0
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x472b38
mov cl, byte [esi]
and cl, 0x18
je 0x4736c7
mov dword [esp + 0x20], 0x65757274
mov dword [esp + 0x24], 0xa2c
jmp 0x4736d7
mov dword [esp + 0x20], 0x736c6166
mov dword [esp + 0x24], 0xa2c65
mov eax, dword [esp + 0x20]
mov edi, edx
mov esi, dword [esp + 0x24]
mov dword [edx], eax
xor eax, eax
test cl, cl
mov dword [edx + 4], esi
setne al
sub edi, eax
mov eax, edx
add edi, 5
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 8
push 0
call fcn.00459ec0
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x472b38
mov dword [esp + 0x20], 0x6c6c756e
lea edi, [edx + 4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 0xa2c
mov ecx, dword [esp + 0x24]
mov dword [edx], eax
mov eax, edx
mov dword [edx + 4], ecx
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 4
push 0
call fcn.00459ec0
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x472b38
mov word [esp + 0x18], 0x5d5b
lea edi, [edx + 2]
mov ax, word [esp + 0x18]
mov word [edx], ax
mov eax, edx
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 4
push 0
call fcn.00459ec0
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x472b38
mov word [esp + 0x18], 0x7d7b
lea edi, [edx + 2]
mov ax, word [esp + 0x18]
mov word [edx], ax
mov eax, edx
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
shl esi, 5
add esi, 0x40
push esi
push 0
mov dword [esp + 0x44], esi
call fcn.00459ec0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x474c0f
lea ecx, [esi + eax]
mov edi, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], 1
mov esi, dword [eax]
mov al, byte [esi]
mov edx, dword [esi]
and al, 7
cmp al, 7
sete al
mov byte [esp + 0x40], al
mov eax, dword [esi + 4]
add esi, 0x10
shrd edx, eax, 8
mov ah, byte [esp + 0x40]
mov cl, ah
mov dword [esp + 0x38], esi
shl edx, cl
mov al, ah
mov ecx, dword [esp + 0x10]
shl al, 5
or al, 0x5b
mov dword [esp + 0x34], edx
lea edx, [ecx + 1]
mov byte [edx], 0xa
inc edx
mov byte [ecx], al
mov al, byte [esi]
mov esi, dword [esp + 0x3c]
and al, 7
movzx ecx, al
sub ecx, 2
mov dword [esp + 0xc], edx
mov byte [esp + 0x1c], al
cmp ecx, 5
ja case.default.0x473838
jmp dword [ecx*4 + 0x474c48]
mov ecx, dword [esp + 0x34]
mov al, cl
mov edi, dword [esp + 0x38]
not al
and al, ah
and ah, cl
mov byte [esp + 0x18], al
mov byte [esp + 0x1c], ah
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
shrd ecx, eax, 8
mov dword [esp + 0x30], edi
mov dword [esp + 0x60], ecx
cmp ecx, 0x2aaaaaa7
jae 0x474bc6
cmp byte [esp + 0x1c], 0
je 0x473888
mov dword [esp + 0x14], 0
jmp 0x473893
mov eax, dword [esp + 0x44]
shl eax, 2
mov dword [esp + 0x14], eax
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*2]
lea ecx, [eax + 0x10]
add eax, 0x10
add eax, edx
mov dword [esp + 0x14], ecx
cmp eax, dword [esp + 0x48]
jb 0x473941
mov eax, esi
mov edi, dword [esp + 0x5c]
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bca
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push edi
call dword [esp + 0x60]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x474bca
mov eax, dword [esp + 0x48]
mov edi, ecx
mov edx, dword [esp + 0x2c]
sub edx, eax
sub edi, edx
add edi, esi
mov esi, ecx
sub esi, dword [esp + 0x10]
push edx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
add edx, esi
mov eax, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp byte [esp + 0x1c], al
cmovne ecx, eax
test ecx, ecx
je 0x47396e
mov dword [esp + 0x88], 0x20202020
mov eax, dword [esp + 0x88]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x473964
mov esi, dword [esp + 0x60]
lea eax, [edx + 1]
add esi, edi
mov byte [edx], 0x22
mov dword [esp + 0x14], esi
nop
movzx ecx, byte [edi]
cmp byte [ecx + 0x4a6030], 0
jne case.default.0x473a11
movzx ecx, byte [edi + 1]
cmp byte [ecx + 0x4a6030], 0
je 0x4739a1
mov cl, byte [edi]
mov byte [eax], cl
inc eax
inc edi
jmp case.default.0x473a11
movzx ecx, byte [edi + 2]
cmp byte [ecx + 0x4a6030], 0
je 0x4739bc
mov cx, word [edi]
mov word [eax], cx
add eax, 2
add edi, 2
jmp case.default.0x473a11
movzx ecx, byte [edi + 3]
cmp byte [ecx + 0x4a6030], 0
je 0x4739dd
mov cx, word [edi]
mov word [eax], cx
mov cl, byte [edi + 2]
mov byte [eax + 2], cl
add eax, 3
add edi, 3
jmp case.default.0x473a11
movzx ecx, byte [edi + 4]
cmp byte [ecx + 0x4a6030], 0
je 0x473a18
mov ecx, dword [edi]
mov dword [eax], ecx
add eax, 4
add edi, 4
cmp edi, esi
jae 0x473dbd
mov cl, byte [edi]
movzx edx, cl
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx + 0x4a6030]
cmp ecx, 5
ja case.default.0x473a11
jmp dword [ecx*4 + 0x474c60]
movzx ecx, byte [edi + 5]
cmp byte [ecx + 0x4a6030], 0
je 0x473a37
mov ecx, dword [edi]
mov dword [eax], ecx
mov cl, byte [edi + 4]
mov byte [eax + 4], cl
add eax, 5
add edi, 5
jmp case.default.0x473a11
movzx ecx, byte [edi + 6]
cmp byte [ecx + 0x4a6030], 0
je 0x473a58
mov ecx, dword [edi]
mov dword [eax], ecx
mov cx, word [edi + 4]
mov word [eax + 4], cx
add eax, 6
add edi, 6
jmp case.default.0x473a11
movzx ecx, byte [edi + 7]
cmp byte [ecx + 0x4a6030], 0
je 0x473a82
mov ecx, dword [edi]
mov dword [eax], ecx
mov cx, word [edi + 4]
mov word [eax + 4], cx
mov cl, byte [edi + 6]
mov byte [eax + 6], cl
add eax, 7
add edi, 7
jmp case.default.0x473a11
lea ecx, [edi + 8]
mov dword [esp + 0x60], ecx
movzx ecx, byte [ecx]
cmp byte [ecx + 0x4a6030], 0
je 0x473aab
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], edx
add eax, 8
jmp case.default.0x473a11
movzx ecx, byte [edi + 9]
cmp byte [ecx + 0x4a6030], 0
je 0x473ad1
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov cl, byte [edi + 8]
mov byte [eax + 8], cl
add eax, 9
add edi, 9
jmp case.default.0x473a11
movzx ecx, byte [edi + 0xa]
cmp byte [ecx + 0x4a6030], 0
je 0x473af9
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov cx, word [edi + 8]
mov word [eax + 8], cx
add eax, 0xa
add edi, 0xa
jmp case.default.0x473a11
movzx ecx, byte [edi + 0xb]
cmp byte [ecx + 0x4a6030], 0
je 0x473b27
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov cx, word [edi + 8]
mov word [eax + 8], cx
mov cl, byte [edi + 0xa]
mov byte [eax + 0xa], cl
add eax, 0xb
add edi, 0xb
jmp case.default.0x473a11
movzx ecx, byte [edi + 0xc]
cmp byte [ecx + 0x4a6030], 0
je 0x473b4d
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
add eax, 0xc
add edi, 0xc
jmp case.default.0x473a11
movzx ecx, byte [edi + 0xd]
cmp byte [ecx + 0x4a6030], 0
je 0x473b79
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov cl, byte [edi + 0xc]
mov byte [eax + 0xc], cl
add eax, 0xd
add edi, 0xd
jmp case.default.0x473a11
movzx ecx, byte [edi + 0xe]
cmp byte [ecx + 0x4a6030], 0
je 0x473ba7
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov cx, word [edi + 0xc]
mov word [eax + 0xc], cx
add eax, 0xe
add edi, 0xe
jmp case.default.0x473a11
movzx ecx, byte [edi + 0xf]
cmp byte [ecx + 0x4a6030], 0
je 0x473bdb
movq xmm0, qword [edi]
movq qword [eax], xmm0
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov cx, word [edi + 0xc]
mov word [eax + 0xc], cx
mov cl, byte [edi + 0xe]
mov byte [eax + 0xe], cl
add eax, 0xf
add edi, 0xf
jmp case.default.0x473a11
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
add eax, 0x10
add edi, 0x10
jmp 0x473980
mov cx, word [edx*2 + 0x4a9150]
mov word [eax], cx
add eax, 2
inc edi
jmp case.default.0x473a11
mov dword [esp + 0x8c], 0x3030755c
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
movzx ecx, byte [edi]
mov cx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 4], cx
add eax, 6
inc edi
jmp case.default.0x473a11
mov dl, byte [edi + 1]
mov word [esp + 0x78], 0x755c
movzx ecx, word [esp + 0x78]
mov word [eax], cx
movzx ecx, byte [esp + 0x1c]
and ecx, 0x1f
shl ecx, 6
mov dword [esp + 0x60], ecx
movzx ecx, dl
mov edx, dword [esp + 0x60]
and ecx, 0x3f
or edx, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 2], cx
movzx ecx, dl
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 4], cx
add eax, 6
add edi, 2
jmp case.default.0x473a11
mov dl, byte [edi + 1]
mov dh, byte [edi + 2]
movzx esi, byte [esp + 0x1c]
mov word [esp + 0x7c], 0x755c
movzx ecx, word [esp + 0x7c]
mov word [eax], cx
shl esi, 6
movzx ecx, dl
and ecx, 0x3f
or esi, ecx
movzx ecx, dh
and ecx, 0x3f
shl esi, 6
or esi, ecx
movzx edx, si
mov esi, dword [esp + 0x14]
mov ecx, edx
shr ecx, 8
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 2], cx
movzx ecx, dl
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 4], cx
add eax, 6
add edi, 3
jmp case.default.0x473a11
movzx edx, byte [edi + 1]
movzx ecx, byte [esp + 0x1c]
and edx, 0x3f
and ecx, 7
mov word [esp + 0x80], 0x755c
shl ecx, 6
or edx, ecx
mov word [esp + 0x84], 0x755c
movzx ecx, byte [edi + 2]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [edi + 3]
and ecx, 0x3f
shl edx, 6
or edx, ecx
sub edx, 0x10000
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
and ecx, 0x3ff
shr edx, 0xa
add ecx, 0xdc00
add edx, 0xd800
mov dword [esp + 0xc], ecx
movzx ecx, word [esp + 0x80]
mov word [eax], cx
mov ecx, edx
shr ecx, 8
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 2], cx
movzx ecx, dl
mov edx, dword [esp + 0xc]
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 4], cx
movzx ecx, word [esp + 0x84]
mov word [eax + 6], cx
mov ecx, edx
shr ecx, 8
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 8], cx
movzx ecx, dl
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 0xa], cx
add eax, 0xc
jmp 0x4739f1
mov cl, byte [esp + 0x1c]
mov byte [eax], cl
inc eax
inc edi
jmp 0x473980
mov cl, byte [esp + 0x18]
lea edx, [eax + 1]
mov byte [eax], 0x22
test cl, cl
mov esi, 0x3a
mov eax, 0x2c
cmovne eax, esi
mov ecx, 0x20
mov esi, dword [esp + 0x44]
mov byte [edx], al
mov eax, 0xa
cmovne eax, ecx
mov byte [edx + 1], al
add edx, 2
jmp 0x474926
mov al, ah
mov ecx, 0
and al, byte [esp + 0x34]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x44]
lea eax, [eax*4]
cmove ecx, eax
lea eax, [ecx + 0x20]
mov dword [esp + 0x60], eax
lea eax, [ecx + 0x20]
add eax, edx
cmp eax, edi
jb 0x473eb4
mov eax, esi
shr eax, 1
cmp eax, dword [esp + 0x60]
cmovbe eax, dword [esp + 0x60]
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bc6
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push dword [esp + 0x64]
call dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x60], eax
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, eax
sub edi, ecx
add edi, esi
mov esi, eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push ecx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
add edx, esi
mov eax, dword [esp + 0x60]
add ecx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp byte [esp + 0x18], al
cmovne ecx, eax
test ecx, ecx
je 0x473ee5
mov dword [esp + 0x90], 0x20202020
mov eax, dword [esp + 0x90]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x473ed7
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x24], eax
mov eax, esi
and eax, 0x10
mov dword [esp + 0x30], ecx
or eax, 0
mov dword [esp + 0x1c], edi
je 0x473f24
push edi
push ecx
mov ecx, dword [esp + 0x14]
mov edx, 1
call fcn.00470d70
add esp, 8
mov edx, eax
jmp 0x474575
mov edi, ecx
mov ecx, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x18], edi
adc ecx, 0
neg ecx
mov dword [esp + 0x14], ecx
and esi, 8
jne 0x473f42
xor eax, eax
jmp 0x473f47
mov eax, 1
cmp dword [esp + 0x1c], 0
mov esi, dword [esp + 0x30]
jg 0x473f62
jl 0x473f58
test esi, esi
jae 0x473f62
mov dword [esp + 0xc], 1
jmp 0x473f6a
mov dword [esp + 0xc], 0
mov byte [edx], 0x2d
and eax, dword [esp + 0xc]
jne 0x473f81
mov ecx, dword [esp + 0x1c]
mov edi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ecx
add edx, eax
mov dword [esp + 0xc], edx
test ecx, ecx
ja 0x4740fb
jb 0x473f9d
cmp edi, 0x5f5e100
jae 0x4740fb
cmp edi, 0x64
jae 0x473fc2
cmp edi, 0xa
sbb ecx, ecx
neg ecx
mov ax, word [ecx + edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx], ax
mov eax, 2
sub eax, ecx
add edx, eax
jmp 0x474575
cmp edi, 0x2710
jae 0x47400a
mov esi, dword [esp + 0xc]
imul edx, edi, 0x147b
shr edx, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi], ax
sub esi, ecx
imul eax, edx, 0x64
mov edx, esi
mov dword [esp + 0xc], esi
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx + 2], ax
add edx, 4
jmp 0x474575
mov eax, edi
cmp edi, 0xf4240
jae 0x474069
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub edi, eax
imul esi, edi, 0x147b
shr esi, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edx, dword [esp + 0xc]
mov word [edx], ax
sub edx, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx + 2], ax
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx + 4], ax
add edx, 6
jmp 0x474575
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
mov edx, dword [esp + 0x18]
shr edi, 8
imul eax, edi, 0x2710
imul esi, edi, 0x147b
sub edx, eax
mov dword [esp + 0x18], edx
imul edx, edx, 0x147b
shr esi, 0x13
shr edx, 0x13
cmp esi, 0xa
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xc]
sbb ecx, ecx
neg ecx
sub dword [esp + 0xc], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0xc]
mov word [edx], ax
mov edx, dword [esp + 0x60]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 4], ax
mov ecx, dword [esp + 0x18]
imul eax, edx, 0x64
mov edx, dword [esp + 0xc]
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx + 6], ax
add edx, 8
jmp 0x474575
mov eax, edi
mov edx, 0x8461cefd
mul edx
mov esi, edx
mov dword [esp + 0x20], eax
mov eax, edi
mov edx, 0xabcc7711
mul edx
mov edi, eax
mov dword [esp + 0x20], edx
mov eax, ecx
mov ecx, 0x8461cefd
mul ecx
mov dword [esp + 0x60], edx
mov ecx, eax
mov eax, dword [esp + 0x14]
mov edx, 0xabcc7711
mul edx
add ecx, esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x60]
adc edx, 0
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
add edi, ecx
mov ecx, dword [esp + 0x20]
adc ecx, 0
mov dword [esp + 0x60], edi
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x1c]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0x1a
shr ecx, 0x1a
cmp dword [esp + 0x14], 0x2386f2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], esi
ja 0x47435a
jb 0x474192
cmp ecx, 0x6fc10000
jae 0x47435a
imul eax, esi, 0x5f5e100
sub ecx, eax
mov dword [esp + 0x18], ecx
cmp esi, 0x64
jae 0x4741c7
mov edi, dword [esp + 0xc]
cmp esi, 0xa
sbb ecx, ecx
neg ecx
mov ax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
mov eax, 2
sub eax, ecx
add edi, eax
jmp 0x4742f7
cmp esi, 0x2710
jae 0x474209
mov edi, dword [esp + 0xc]
imul edx, esi, 0x147b
shr edx, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
sub edi, ecx
imul eax, edx, 0x64
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
add edi, 4
jmp 0x4742f7
mov eax, esi
cmp esi, 0xf4240
jae 0x474270
mov ecx, 0x68db9
mov edi, dword [esp + 0xc]
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x30], esi
imul esi, esi, 0x147b
shr esi, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
sub edi, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x30]
mov word [edi + 2], ax
imul eax, esi, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
add edi, 6
jmp 0x4742f7
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
sub esi, eax
mov dword [esp + 0x30], esi
imul edx, dword [esp + 0x30], 0x147b
imul esi, edi, 0x147b
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc]
sbb ecx, ecx
neg ecx
sub dword [esp + 0xc], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx], ax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0xc]
mov word [edi + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
imul eax, edx, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 6], ax
add edi, 8
mov ecx, dword [esp + 0x18]
mov edx, 0x68db8bb
mov eax, ecx
mov dword [esp + 0xc], edi
mul edx
mov esi, edx
shr esi, 8
imul eax, esi, 0x2710
sub ecx, eax
mov dword [esp + 0x18], ecx
imul edx, dword [esp + 0x18], 0x147b
imul ecx, esi, 0x147b
shr edx, 0x13
shr ecx, 0x13
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
imul eax, ecx, 0x64
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
jmp 0x4740da
imul eax, esi, 0x5f5e100
mov edi, 0x346dc5d6
sub ecx, eax
mov eax, esi
mov dword [esp + 0x18], ecx
mov ecx, 0x3886594b
mul ecx
mov dword [esp + 0x20], eax
mov esi, edx
mov eax, dword [esp + 0x30]
mul edi
mov edi, eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x1c]
mul ecx
mov ecx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x1c]
mov edx, 0x346dc5d6
mul edx
add ecx, esi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
adc edx, 0
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x1c]
add edi, ecx
mov ecx, dword [esp + 0x60]
adc ecx, 0
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x30]
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x14]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0xb
imul eax, esi, 0x2710
sub edi, eax
mov eax, esi
mov dword [esp + 0x30], edi
cmp esi, 0xf4240
jae 0x474448
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x1c], esi
imul esi, esi, 0x147b
shr esi, 0x13
cmp edx, 0xa
sbb ecx, ecx
neg ecx
movzx eax, word [ecx + edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edx, dword [esp + 0xc]
mov word [edx], ax
sub edx, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x1c]
mov word [edx + 2], ax
imul eax, esi, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx + 4], ax
add edx, 6
jmp 0x4744d3
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
sub esi, eax
mov dword [esp + 0x1c], esi
imul edx, dword [esp + 0x1c], 0x147b
imul esi, edi, 0x147b
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc]
sbb ecx, ecx
neg ecx
sub dword [esp + 0xc], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0xc]
mov word [edx], ax
mov edx, dword [esp + 0x20]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x30]
mov word [ecx + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 4], ax
imul eax, edx, 0x64
mov edx, dword [esp + 0x1c]
sub edx, eax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
lea edx, [ecx + 8]
mov word [ecx + 6], ax
imul ecx, edi, 0x147b
shr ecx, 0x13
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx], ax
imul eax, ecx, 0x64
mov ecx, 0x68db8bb
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x18]
mov word [edx + 2], ax
add edx, 4
mov dword [esp + 0x14], edx
mov eax, edi
mul ecx
mov esi, edx
shr esi, 8
imul eax, esi, 0x2710
imul ecx, esi, 0x147b
sub edi, eax
imul edx, edi, 0x147b
shr ecx, 0x13
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
shr edx, 0x13
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x14]
mov word [edx], ax
imul eax, ecx, 0x64
mov ecx, edx
mov edx, dword [esp + 0x20]
sub esi, eax
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 2], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 4], ax
imul eax, edx, 0x64
lea edx, [ecx + 8]
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 6], ax
test edx, edx
je case.default.0x474bb1
mov esi, dword [esp + 0x44]
mov word [edx], 0xa2c
add edx, 2
jmp 0x474926
mov al, ah
mov ecx, 0
and al, byte [esp + 0x34]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x44]
lea eax, [eax*4]
cmove ecx, eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x20], eax
lea eax, [ecx + 0x10]
add eax, edx
cmp eax, edi
jb 0x47464a
mov eax, esi
shr eax, 1
cmp eax, dword [esp + 0x20]
cmovbe eax, dword [esp + 0x20]
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bc6
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push dword [esp + 0x64]
call dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, eax
sub edi, ecx
add edi, esi
mov esi, eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push ecx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
add edx, esi
mov eax, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp byte [esp + 0x18], al
cmovne ecx, eax
test ecx, ecx
je 0x47467a
mov dword [esp + 0x94], 0x20202020
mov eax, dword [esp + 0x94]
nop dword [eax]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x474670
mov eax, dword [esp + 0x38]
mov cl, byte [eax]
and cl, 0x18
je 0x4746ab
mov dword [esp + 0xa0], 0x65757274
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xa4], 0xa2c
mov esi, dword [esp + 0xa4]
jmp 0x4746cf
mov dword [esp + 0xa8], 0x736c6166
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xac], 0xa2c65
mov esi, dword [esp + 0xac]
mov dword [edx], eax
xor eax, eax
test cl, cl
mov dword [edx + 4], esi
mov esi, dword [esp + 0x44]
setne al
sub edx, eax
add edx, 7
jmp 0x474926
mov al, ah
mov ecx, 0
and al, byte [esp + 0x34]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x44]
lea eax, [eax*4]
cmove ecx, eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x20], eax
lea eax, [ecx + 0x10]
add eax, edx
cmp eax, edi
jb 0x4747a5
mov eax, esi
shr eax, 1
cmp eax, dword [esp + 0x20]
cmovbe eax, dword [esp + 0x20]
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bc6
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push dword [esp + 0x64]
call dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, eax
sub edi, ecx
add edi, esi
mov esi, eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push ecx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
add edx, esi
mov eax, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x44]
xor eax, eax
cmp byte [esp + 0x18], al
mov ecx, esi
cmovne ecx, eax
test ecx, ecx
je 0x4747da
mov dword [esp + 0x98], 0x20202020
mov eax, dword [esp + 0x98]
nop word [eax + eax]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x4747d0
mov dword [esp + 0x68], 0x6c6c756e
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], 0xa2c
mov ecx, dword [esp + 0x6c]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 6
jmp 0x474926
mov cl, ah
mov eax, dword [esp + 0x38]
and cl, byte [esp + 0x34]
mov byte [esp + 0x30], cl
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
shrd dword [esp + 0x18], eax, 8
cmp byte [esp + 0x1c], 7
sete byte [esp + 0x1c]
cmp dword [esp + 0x18], 0
jne 0x474a65
test cl, cl
je 0x47483d
xor eax, eax
jmp 0x474844
mov eax, dword [esp + 0x44]
shl eax, 2
lea ecx, [eax + 0x10]
add eax, 0x10
add eax, edx
cmp eax, edi
jb 0x4748db
mov eax, esi
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bc6
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push dword [esp + 0x64]
call dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, eax
sub edi, ecx
add edi, esi
mov esi, eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push ecx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
add edx, esi
mov eax, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x44]
xor eax, eax
cmp byte [esp + 0x30], al
mov ecx, esi
cmovne ecx, eax
test ecx, ecx
je 0x47490a
mov dword [esp + 0x9c], 0x20202020
mov eax, dword [esp + 0x9c]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x474900
mov cl, byte [esp + 0x1c]
shl cl, 5
mov al, cl
mov word [edx + 2], 0xa2c
or al, 0x5b
or cl, 0x5d
mov byte [edx], al
mov byte [edx + 1], cl
add edx, 4
sub dword [esp + 0x34], 1
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc], edx
jne 0x474b8b
lea ecx, [esi*4]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
nop dword [eax + eax]
mov byte [edx - 2], 0xa
dec edx
mov dword [esp + 0xc], edx
lea eax, [edx + ecx]
cmp eax, edi
jb 0x4749ef
mov esi, dword [esp + 0x3c]
mov eax, esi
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bc6
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push dword [esp + 0x64]
call dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, eax
sub edi, ecx
add edi, esi
mov esi, eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push ecx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x20]
add edx, esi
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
add esi, eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
sub ecx, 4
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x44], eax
mov ecx, eax
test eax, eax
je 0x474a1b
mov dword [esp + 0x74], 0x20202020
mov eax, dword [esp + 0x74]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x474a11
mov al, byte [esp + 0x40]
shl al, 5
or al, 0x5d
mov byte [edx], al
cmp edi, esi
jae 0x474bb8
mov ecx, dword [edi]
mov ah, cl
shr ecx, 1
and ah, 1
dec ecx
mov word [edx + 1], 0xa2c
add edi, 4
mov dword [esp + 0x34], ecx
add edx, 3
mov byte [esp + 0x40], ah
test ecx, ecx
mov dword [esp + 0x48], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
je 0x474950
jmp 0x474b8f
test cl, cl
je 0x474a6d
xor eax, eax
jmp 0x474a74
mov eax, dword [esp + 0x44]
shl eax, 2
lea ecx, [eax + 0x20]
add eax, 0x20
add eax, edx
cmp eax, edi
jb 0x474b07
mov eax, esi
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 3
and eax, 0xfffffffc
lea edx, [eax + esi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
or ecx, eax
jne 0x474bc6
mov esi, edx
push esi
push dword [esp + 0x14]
mov dword [esp + 0x44], esi
push dword [esp + 0x64]
call dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x2c]
sub ecx, edi
mov edi, eax
sub edi, ecx
add edi, esi
mov esi, eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push ecx
add eax, esi
push eax
push edi
call fcn.00478c80
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
add edx, esi
mov eax, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
sub edi, 4
mov esi, dword [esp + 0x44]
mov dword [esp + 0x20], 0
mov dword [esp + 0x48], edi
lea ecx, [eax + eax]
movzx eax, byte [esp + 0x40]
or ecx, eax
mov eax, dword [esp + 0x18]
mov dword [edi], ecx
mov cl, byte [esp + 0x1c]
shl eax, cl
cmp byte [esp + 0x30], 0
mov dword [esp + 0x34], eax
mov al, cl
mov ecx, esi
mov ah, al
cmovne ecx, dword [esp + 0x20]
mov byte [esp + 0x40], ah
test ecx, ecx
je 0x474b72
mov dword [esp + 0x4c], 0x20202020
mov eax, dword [esp + 0x4c]
nop dword [eax]
mov dword [edx], eax
add edx, 4
sub ecx, 1
jne 0x474b60
mov ah, byte [esp + 0x40]
mov al, byte [esp + 0x1c]
shl al, 5
inc esi
or al, 0x5b
mov byte [edx + 1], 0xa
mov byte [edx], al
add edx, 2
mov dword [esp + 0x44], esi
mov dword [esp + 0xc], edx
jmp 0x474b8f
mov ah, byte [esp + 0x40]
mov ecx, dword [esp + 0x38]
add ecx, 0x10
mov dword [esp + 0x38], ecx
mov al, byte [ecx]
and al, 7
movzx ecx, al
sub ecx, 2
mov byte [esp + 0x1c], al
cmp ecx, 5
ja case.default.0x474bb1
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x474c48]
mov eax, dword [esp + 0x10]
mov byte [edx + 1], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x474c0f
push eax
push edi
call dword [esp + 0x60]
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
test eax, eax
je 0x474c0f
push eax
push dword [esp + 0x60]
call dword [esp + 0x60]
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
push eax
push dword [esp + 0x60]
call dword [esp + 0x60]
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret