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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
movups xmm0, xmmword [0x4e18e8]
push esi
push edi
mov edi, ecx
movups xmmword [esp + 0x80], xmm0
test edi, edi
je 0x445668
mov esi, dword [edi]
test esi, esi
je 0x445668
mov dl, byte [esi]
mov al, dl
and al, 6
cmp al, 6
jne 0x445690
mov ecx, dword [esi]
mov eax, dword [esi + 4]
shrd ecx, eax, 8
test ecx, ecx
je 0x445690
push 0x40
push 0
call fcn.00429770
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x445668
lea esi, [eax + 0x40]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x14], esi
mov edi, dword [edi]
mov dword [esp + 0x90], edi
mov dl, byte [edi]
mov eax, dword [edi]
and dl, 7
mov dword [esp + 0x64], eax
cmp dl, 7
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x2c]
sete cl
shrd dword [esp + 0x64], eax, 8
shl dword [esp + 0x64], cl
mov al, cl
shl al, 5
or al, 0x5b
mov byte [edi + 1], 0xa
mov byte [edi], al
add edi, 2
mov eax, dword [esp + 0x90]
mov byte [esp + 0x43], cl
mov dword [esp + 0x28], edi
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], eax
cmp dl, 7
jne 0x4441f3
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], eax
mov ch, byte [eax]
and ch, 7
mov dword [esp + 0x1c], 1
movzx eax, ch
sub eax, 2
mov byte [esp + 0x12], ch
cmp eax, 5
ja case.default.0x444220
mov edx, 0x40
mov dword [esp + 0x44], edx
nop dword [eax]
jmp dword [eax*4 + 0x446324]
mov eax, dword [esp + 0x64]
mov ch, al
mov esi, dword [esp + 0x68]
not ch
and al, cl
and ch, cl
mov byte [esp + 0x57], ch
mov byte [esp + 0x13], al
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
shrd ecx, eax, 8
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ecx
cmp ecx, 0x2aaaaaa7
jae 0x44562b
cmp byte [esp + 0x13], 0
je 0x444270
mov dword [esp + 0x18], 0
jmp 0x44427b
mov eax, dword [esp + 0x1c]
shl eax, 2
mov dword [esp + 0x18], eax
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*2]
lea ecx, [eax + 0x10]
add eax, 0x10
add eax, edi
mov dword [esp + 0x18], ecx
cmp eax, dword [esp + 0x14]
jb 0x44432d
mov eax, edx
mov edi, dword [esp + 0x8c]
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 7
and eax, 0xfffffff8
lea esi, [eax + edx]
cmp esi, eax
sbb ecx, ecx
neg ecx
cmp esi, edx
sbb eax, eax
neg eax
or ecx, eax
jne 0x445632
push esi
push dword [esp + 0x30]
mov dword [esp + 0x4c], esi
push edi
call dword [esp + 0x90]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x445632
mov eax, dword [esp + 0x14]
mov edi, ecx
mov edx, dword [esp + 0x5c]
sub edx, eax
sub edi, edx
add edi, esi
mov esi, ecx
sub esi, dword [esp + 0x2c]
push edx
add eax, esi
push eax
push edi
call fcn.0049b820
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x13], al
cmovne ecx, eax
test ecx, ecx
je 0x44435a
mov dword [esp + 0x94], 0x20202020
mov eax, dword [esp + 0x94]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x444350
mov eax, dword [esp + 0x20]
add eax, esi
mov byte [edi], 0x22
mov dword [esp + 0x18], eax
lea eax, [edi + 1]
mov edi, dword [esp + 0x18]
nop
movzx ecx, byte [esi]
cmp byte [ecx + 0x4de940], 0
jne case.default.0x444401
movzx ecx, byte [esi + 1]
cmp byte [ecx + 0x4de940], 0
je 0x444391
mov cl, byte [esi]
mov byte [eax], cl
inc eax
inc esi
jmp case.default.0x444401
movzx ecx, byte [esi + 2]
cmp byte [ecx + 0x4de940], 0
je 0x4443ac
mov cx, word [esi]
mov word [eax], cx
add eax, 2
add esi, 2
jmp case.default.0x444401
movzx ecx, byte [esi + 3]
cmp byte [ecx + 0x4de940], 0
je 0x4443cd
mov cx, word [esi]
mov word [eax], cx
mov cl, byte [esi + 2]
mov byte [eax + 2], cl
add eax, 3
add esi, 3
jmp case.default.0x444401
movzx ecx, byte [esi + 4]
cmp byte [ecx + 0x4de940], 0
je 0x444408
mov ecx, dword [esi]
mov dword [eax], ecx
add eax, 4
add esi, 4
cmp esi, edi
jae 0x4447a3
mov cl, byte [esi]
movzx edx, cl
mov byte [esp + 0x13], cl
movzx ecx, byte [edx + 0x4de940]
cmp ecx, 5
ja case.default.0x444401
jmp dword [ecx*4 + 0x44633c]
movzx ecx, byte [esi + 5]
cmp byte [ecx + 0x4de940], 0
je 0x444427
mov ecx, dword [esi]
mov dword [eax], ecx
mov cl, byte [esi + 4]
mov byte [eax + 4], cl
add eax, 5
add esi, 5
jmp case.default.0x444401
movzx ecx, byte [esi + 6]
cmp byte [ecx + 0x4de940], 0
je 0x444448
mov ecx, dword [esi]
mov dword [eax], ecx
mov cx, word [esi + 4]
mov word [eax + 4], cx
add eax, 6
add esi, 6
jmp case.default.0x444401
movzx ecx, byte [esi + 7]
cmp byte [ecx + 0x4de940], 0
je 0x444472
mov ecx, dword [esi]
mov dword [eax], ecx
mov cx, word [esi + 4]
mov word [eax + 4], cx
mov cl, byte [esi + 6]
mov byte [eax + 6], cl
add eax, 7
add esi, 7
jmp case.default.0x444401
lea ecx, [esi + 8]
mov dword [esp + 0x18], ecx
movzx ecx, byte [ecx]
cmp byte [ecx + 0x4de940], 0
je 0x44449b
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov esi, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], edx
add eax, 8
jmp case.default.0x444401
movzx ecx, byte [esi + 9]
cmp byte [ecx + 0x4de940], 0
je 0x4444c1
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov cl, byte [esi + 8]
mov byte [eax + 8], cl
add eax, 9
add esi, 9
jmp case.default.0x444401
movzx ecx, byte [esi + 0xa]
cmp byte [ecx + 0x4de940], 0
je 0x4444e9
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov cx, word [esi + 8]
mov word [eax + 8], cx
add eax, 0xa
add esi, 0xa
jmp case.default.0x444401
movzx ecx, byte [esi + 0xb]
cmp byte [ecx + 0x4de940], 0
je 0x444517
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov cx, word [esi + 8]
mov word [eax + 8], cx
mov cl, byte [esi + 0xa]
mov byte [eax + 0xa], cl
add eax, 0xb
add esi, 0xb
jmp case.default.0x444401
movzx ecx, byte [esi + 0xc]
cmp byte [ecx + 0x4de940], 0
je 0x44453d
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
add eax, 0xc
add esi, 0xc
jmp case.default.0x444401
movzx ecx, byte [esi + 0xd]
cmp byte [ecx + 0x4de940], 0
je 0x444569
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov cl, byte [esi + 0xc]
mov byte [eax + 0xc], cl
add eax, 0xd
add esi, 0xd
jmp case.default.0x444401
movzx ecx, byte [esi + 0xe]
cmp byte [ecx + 0x4de940], 0
je 0x444597
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov cx, word [esi + 0xc]
mov word [eax + 0xc], cx
add eax, 0xe
add esi, 0xe
jmp case.default.0x444401
movzx ecx, byte [esi + 0xf]
cmp byte [ecx + 0x4de940], 0
je 0x4445cb
movq xmm0, qword [esi]
movq qword [eax], xmm0
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov cx, word [esi + 0xc]
mov word [eax + 0xc], cx
mov cl, byte [esi + 0xe]
mov byte [eax + 0xe], cl
add eax, 0xf
add esi, 0xf
jmp case.default.0x444401
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
add eax, 0x10
add esi, 0x10
jmp 0x444370
mov cx, word [edx*2 + str._________________b_t_n___f_r___________________________________________________________________________________________________________________________________________________________]
mov word [eax], cx
add eax, 2
inc esi
jmp case.default.0x444401
mov dword [esp + 0x98], 0x3030755c
mov ecx, dword [esp + 0x98]
mov dword [eax], ecx
movzx ecx, byte [esi]
mov cx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 4], cx
add eax, 6
inc esi
jmp case.default.0x444401
mov dl, byte [esi + 1]
mov word [esp + 0x70], 0x755c
movzx ecx, word [esp + 0x70]
mov word [eax], cx
movzx ecx, byte [esp + 0x13]
and ecx, 0x1f
shl ecx, 6
mov dword [esp + 0x18], ecx
movzx ecx, dl
mov edx, dword [esp + 0x18]
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 esi, 2
jmp case.default.0x444401
mov cl, byte [esi + 2]
mov dl, byte [esi + 1]
mov byte [esp + 0x12], cl
mov word [esp + 0x74], 0x755c
movzx ecx, word [esp + 0x74]
mov word [eax], cx
movzx ecx, byte [esp + 0x13]
shl ecx, 6
movzx edx, dl
and edx, 0x3f
or edx, ecx
movzx ecx, byte [esp + 0x12]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx edx, dx
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 esi, 3
jmp case.default.0x444401
movzx ecx, byte [esi + 1]
movzx edx, byte [esp + 0x13]
and ecx, 0x3f
and edx, 7
mov word [esp + 0x78], 0x755c
shl edx, 6
or edx, ecx
mov word [esp + 0x3c], 0x755c
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl edx, 6
or edx, ecx
sub edx, 0x10000
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
and ecx, 0x3ff
shr edx, 0xa
add ecx, 0xdc00
add edx, 0xd800
mov dword [esp + 0x24], ecx
movzx ecx, word [esp + 0x78]
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 + 0x24]
movzx ecx, word [ecx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_v]
mov word [eax + 4], cx
movzx ecx, word [esp + 0x3c]
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 0x4443e1
mov cl, byte [esp + 0x13]
mov byte [eax], cl
inc eax
inc esi
jmp 0x444370
mov cl, byte [esp + 0x57]
lea edi, [eax + 1]
mov byte [eax], 0x22
test cl, cl
mov edx, 0x3a
mov eax, 0x2c
cmovne eax, edx
mov ecx, 0x20
mov edx, dword [esp + 0x1c]
mov byte [edi], al
mov eax, 0xa
cmovne eax, ecx
mov byte [edi + 1], al
add edi, 2
jmp 0x44532c
mov al, cl
mov ecx, 0
and al, byte [esp + 0x64]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x1c]
lea eax, [eax*4]
cmove ecx, eax
lea eax, [ecx + 0x20]
mov dword [esp + 0x18], eax
lea eax, [edi + 0x20]
add eax, ecx
cmp eax, esi
jb 0x44489f
mov eax, edx
shr eax, 1
cmp eax, dword [esp + 0x18]
cmovbe eax, dword [esp + 0x18]
add eax, 7
and eax, 0xfffffff8
lea edi, [eax + edx]
cmp edi, eax
sbb ecx, ecx
neg ecx
cmp edi, edx
sbb eax, eax
neg eax
or ecx, eax
jne 0x44562b
mov eax, edi
mov edi, dword [esp + 0x8c]
push eax
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
push edi
call dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x445632
mov ecx, dword [esp + 0x5c]
mov edi, eax
sub ecx, esi
mov esi, eax
sub esi, dword [esp + 0x2c]
sub edi, ecx
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x44]
add eax, esi
push ecx
push eax
push edi
call fcn.0049b820
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x5c], esi
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x12], al
cmovne ecx, eax
test ecx, ecx
je 0x4448cc
mov dword [esp + 0x9c], 0x20202020
mov eax, dword [esp + 0x9c]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x4448c2
mov esi, dword [esp + 0x68]
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x34], eax
mov eax, edx
and eax, 0x10
mov dword [esp + 0x24], ecx
or eax, 0
mov dword [esp + 0x20], esi
je 0x444909
push esi
push ecx
mov edx, 1
mov ecx, edi
call fcn.00440210
add esp, 8
mov edi, eax
jmp 0x444f73
mov esi, ecx
mov ecx, dword [esp + 0x20]
neg esi
mov dword [esp + 0x58], esi
adc ecx, 0
neg ecx
mov dword [esp + 0x18], ecx
and edx, 8
jne 0x444927
xor eax, eax
jmp 0x44492c
mov eax, 1
cmp dword [esp + 0x20], 0
mov edx, dword [esp + 0x24]
jg 0x444947
jl 0x44493d
test edx, edx
jae 0x444947
mov dword [esp + 0x24], 1
jmp 0x44494f
mov dword [esp + 0x24], 0
mov byte [edi], 0x2d
and eax, dword [esp + 0x24]
jne 0x444966
mov ecx, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x18], ecx
add edi, eax
mov dword [esp + 0x28], edi
test ecx, ecx
ja 0x444ad4
jb 0x444982
cmp esi, 0x5f5e100
jae 0x444ad4
cmp esi, 0x64
jae 0x4449a7
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 0x444f73
cmp esi, 0x2710
jae 0x4449e5
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 0x444f73
mov eax, esi
cmp esi, 0xf4240
jae 0x444a48
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x58], 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 + 0x58]
mov word [edi], ax
sub edi, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
imul eax, esi, 0x64
sub edx, eax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 4], ax
add edi, 6
jmp 0x444f73
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
sub esi, eax
mov dword [esp + 0x58], esi
imul edx, dword [esp + 0x58], 0x147b
imul esi, edi, 0x147b
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
sbb ecx, ecx
neg ecx
sub dword [esp + 0x28], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx], ax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x58]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x28]
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 0x444f73
mov eax, esi
mov edx, 0x8461cefd
mul edx
mov edi, 0xabcc7711
mov dword [esp + 0x30], eax
mov esi, edx
mov eax, dword [esp + 0x58]
mul edi
mov edi, eax
mov dword [esp + 0x30], edx
mov eax, ecx
mov ecx, 0x8461cefd
mul ecx
mov dword [esp + 0xb8], edx
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edx, 0xabcc7711
mul edx
add ecx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xb8]
adc edx, 0
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [esp + 0x30]
adc ecx, 0
mov dword [esp + 0xb8], edi
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x24]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0x1a
shr ecx, 0x1a
cmp dword [esp + 0x18], 0x2386f2
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x20], esi
ja 0x444d52
jb 0x444b76
cmp ecx, 0x6fc10000
jae 0x444d52
imul eax, esi, 0x5f5e100
sub ecx, eax
mov dword [esp + 0x58], ecx
cmp esi, 0x64
jae 0x444bab
mov edi, dword [esp + 0x28]
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 0x444cdb
cmp esi, 0x2710
jae 0x444bed
mov edi, dword [esp + 0x28]
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 0x444cdb
mov eax, esi
cmp esi, 0xf4240
jae 0x444c54
mov ecx, 0x68db9
mov edi, dword [esp + 0x28]
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x20], 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 + 0x20]
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 0x444cdb
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
sub esi, eax
mov dword [esp + 0x20], esi
imul edx, dword [esp + 0x20], 0x147b
imul esi, edi, 0x147b
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x28]
sbb ecx, ecx
neg ecx
sub dword [esp + 0x28], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edx], ax
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x28]
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 + 0x58]
mov edx, 0x68db8bb
mov eax, ecx
mul edx
mov esi, edx
shr esi, 8
imul eax, esi, 0x2710
sub ecx, eax
mov dword [esp + 0x58], ecx
imul edx, dword [esp + 0x58], 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 + 0x58]
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 0x444f73
imul eax, esi, 0x5f5e100
mov edi, 0x346dc5d6
sub ecx, eax
mov eax, esi
mov dword [esp + 0x58], ecx
mov ecx, 0x3886594b
mul ecx
mov dword [esp + 0x30], eax
mov esi, edx
mov eax, dword [esp + 0x20]
mul edi
mov edi, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x24]
mul ecx
mov ecx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x24]
mov edx, 0x346dc5d6
mul edx
add ecx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
adc edx, 0
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x24]
add edi, ecx
mov ecx, dword [esp + 0xb8]
adc ecx, 0
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x20]
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x18]
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 + 0x20], edi
cmp esi, 0xf4240
jae 0x444e46
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x24], 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 + 0x28]
mov word [edx], ax
sub edx, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x24]
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 0x444ed1
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
sub esi, eax
mov dword [esp + 0x24], esi
imul edx, dword [esp + 0x24], 0x147b
imul esi, edi, 0x147b
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x28]
sbb ecx, ecx
neg ecx
sub dword [esp + 0x28], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x28]
mov word [edx], ax
mov edx, dword [esp + 0x30]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x20]
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 + 0x24]
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 + 0x58]
mov word [edx + 2], ax
add edx, 4
mov dword [esp + 0x18], 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 + 0x30], edx
mov edx, dword [esp + 0x18]
mov word [edx], ax
imul eax, ecx, 0x64
mov ecx, edx
mov edx, dword [esp + 0x30]
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
je case.default.0x445616
mov edx, dword [esp + 0x1c]
mov word [edi], 0xa2c
add edi, 2
jmp 0x44532c
mov al, cl
mov ecx, 0
and al, byte [esp + 0x64]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x1c]
lea eax, [eax*4]
cmove ecx, eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x30], eax
lea eax, [edi + 0x10]
add eax, ecx
cmp eax, esi
jb 0x445051
mov eax, edx
shr eax, 1
cmp eax, dword [esp + 0x30]
cmovbe eax, dword [esp + 0x30]
add eax, 7
and eax, 0xfffffff8
lea edi, [eax + edx]
cmp edi, eax
sbb ecx, ecx
neg ecx
cmp edi, edx
sbb eax, eax
neg eax
or ecx, eax
jne 0x44562b
mov eax, edi
mov edi, dword [esp + 0x8c]
push eax
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
push edi
call dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x445632
mov ecx, dword [esp + 0x5c]
mov edi, eax
sub ecx, esi
mov esi, eax
sub esi, dword [esp + 0x2c]
sub edi, ecx
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x44]
add eax, esi
push ecx
push eax
push edi
call fcn.0049b820
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x5c], esi
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x12], al
cmovne ecx, eax
test ecx, ecx
je 0x44507e
mov dword [esp + 0xa0], 0x20202020
mov eax, dword [esp + 0xa0]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x445074
mov eax, dword [esp + 0x68]
mov cl, byte [eax]
and cl, 0x18
je 0x4450af
mov dword [esp + 0xa8], 0x65757274
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xac], 0xa2c
mov edx, dword [esp + 0xac]
jmp 0x4450d3
mov dword [esp + 0xb0], 0x736c6166
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb4], 0xa2c65
mov edx, dword [esp + 0xb4]
mov dword [edi], eax
xor eax, eax
test cl, cl
mov dword [edi + 4], edx
mov edx, dword [esp + 0x1c]
setne al
sub edi, eax
add edi, 7
jmp 0x44532c
mov al, cl
mov ecx, 0
and al, byte [esp + 0x64]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x1c]
lea eax, [eax*4]
cmove ecx, eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x30], eax
lea eax, [edi + 0x10]
add eax, ecx
cmp eax, esi
jb 0x4451b2
mov eax, edx
shr eax, 1
cmp eax, dword [esp + 0x30]
cmovbe eax, dword [esp + 0x30]
add eax, 7
and eax, 0xfffffff8
lea edi, [eax + edx]
cmp edi, eax
sbb ecx, ecx
neg ecx
cmp edi, edx
sbb eax, eax
neg eax
or ecx, eax
jne 0x44562b
mov eax, edi
mov edi, dword [esp + 0x8c]
push eax
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
push edi
call dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x445632
mov ecx, dword [esp + 0x5c]
mov edi, eax
sub ecx, esi
mov esi, eax
sub esi, dword [esp + 0x2c]
sub edi, ecx
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x44]
add eax, esi
push ecx
push eax
push edi
call fcn.0049b820
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x5c], esi
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x12], al
mov ecx, edx
cmovne ecx, eax
test ecx, ecx
je 0x4451e1
mov dword [esp + 0xa4], 0x20202020
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x4451d7
mov dword [esp + 0x48], 0x6c6c756e
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], 0xa2c
mov ecx, dword [esp + 0x4c]
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 6
jmp 0x44532c
mov eax, dword [esp + 0x68]
and cl, byte [esp + 0x64]
mov byte [esp + 0x57], cl
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
shrd dword [esp + 0x24], eax, 8
cmp ch, 7
sete byte [esp + 0x13]
cmp dword [esp + 0x24], 0
jne 0x4454a1
test cl, cl
je 0x445240
xor eax, eax
jmp 0x445247
mov eax, dword [esp + 0x1c]
shl eax, 2
lea ecx, [eax + 0x10]
add eax, 0x10
add eax, edi
cmp eax, esi
jb 0x4452e7
mov eax, edx
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 7
and eax, 0xfffffff8
lea edi, [eax + edx]
cmp edi, eax
sbb ecx, ecx
neg ecx
cmp edi, edx
sbb eax, eax
neg eax
or ecx, eax
jne 0x44562b
mov eax, edi
mov edi, dword [esp + 0x8c]
push eax
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
push edi
call dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x445632
mov ecx, dword [esp + 0x5c]
mov edi, eax
sub ecx, esi
mov esi, eax
sub esi, dword [esp + 0x2c]
sub edi, ecx
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x44]
add eax, esi
push ecx
push eax
push edi
call fcn.0049b820
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x5c], esi
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x57], al
mov ecx, edx
cmovne ecx, eax
test ecx, ecx
je 0x445310
mov dword [esp + 0x7c], 0x20202020
mov eax, dword [esp + 0x7c]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x445306
mov cl, byte [esp + 0x13]
shl cl, 5
mov al, cl
mov word [edi + 2], 0xa2c
or al, 0x5b
or cl, 0x5d
mov byte [edi], al
mov byte [edi + 1], cl
add edi, 4
sub dword [esp + 0x64], 1
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], edi
jne 0x445498
lea ecx, [edx*4]
mov dword [esp + 0x18], ecx
nop word [eax + eax]
mov byte [edi - 2], 0xa
dec edi
mov dword [esp + 0x28], edi
lea eax, [ecx + edi]
cmp eax, esi
jb 0x445402
mov edi, dword [esp + 0x44]
mov eax, edi
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 7
and eax, 0xfffffff8
lea edx, [eax + edi]
cmp edx, eax
sbb ecx, ecx
neg ecx
cmp edx, edi
mov edi, dword [esp + 0x8c]
sbb eax, eax
neg eax
or ecx, eax
jne 0x445632
mov eax, edx
push eax
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
push edi
call dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x445632
mov ecx, dword [esp + 0x5c]
mov edi, eax
sub ecx, esi
mov esi, eax
sub esi, dword [esp + 0x2c]
sub edi, ecx
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x44]
add eax, esi
push ecx
push eax
push edi
call fcn.0049b820
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x14]
add edx, eax
mov dword [esp + 0x5c], edx
jmp 0x445406
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x1c]
sub ecx, 4
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov ecx, eax
test eax, eax
je 0x445432
mov dword [esp + 0x6c], 0x20202020
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x445428
mov al, byte [esp + 0x43]
shl al, 5
or al, 0x5d
mov byte [edi], al
cmp esi, edx
jae 0x44561d
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esi]
mov dl, al
and dl, 1
shr eax, 1
mov byte [esp + 0x43], dl
dec eax
mov edx, dword [esi + 4]
add esi, 8
mov word [edi + 1], 0xa2c
add edi, 3
mov dword [esp + 0x90], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], edi
test eax, eax
je 0x445350
mov eax, dword [esp + 0x68]
jmp 0x4455fa
mov eax, dword [esp + 0x68]
jmp 0x4455f3
test cl, cl
je 0x4454a9
xor eax, eax
jmp 0x4454b0
mov eax, dword [esp + 0x1c]
shl eax, 2
lea ecx, [eax + 0x20]
add eax, 0x20
add eax, edi
cmp eax, esi
jb 0x445554
mov eax, edx
shr eax, 1
cmp eax, ecx
cmovbe eax, ecx
add eax, 7
and eax, 0xfffffff8
lea edi, [eax + edx]
cmp edi, eax
sbb ecx, ecx
neg ecx
cmp edi, edx
sbb eax, eax
neg eax
or ecx, eax
jne 0x44562b
mov eax, edi
mov edi, dword [esp + 0x8c]
push eax
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
push edi
call dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x445632
mov ecx, dword [esp + 0x5c]
mov edi, eax
sub ecx, esi
mov esi, eax
sub esi, dword [esp + 0x2c]
sub edi, ecx
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x44]
add eax, esi
push ecx
push eax
push edi
call fcn.0049b820
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
add edi, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
sub esi, 8
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], 0
mov dword [esp + 0x14], esi
lea ecx, [eax + eax]
movzx eax, byte [esp + 0x43]
or ecx, eax
mov eax, dword [esp + 0x90]
mov dword [esi], ecx
mov cl, byte [esp + 0x13]
shl edx, cl
cmp byte [esp + 0x57], 0
mov dword [esi + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
mov dl, cl
mov ecx, eax
mov byte [esp + 0x43], dl
cmovne ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4455bf
mov dword [esp + 0x60], 0x20202020
mov eax, dword [esp + 0x60]
mov dword [edi], eax
add edi, 4
sub ecx, 1
jne 0x4455b1
mov eax, dword [esp + 0x1c]
inc eax
shl dl, 5
mov dword [esp + 0x1c], eax
or dl, 0x5b
mov eax, dword [esp + 0x68]
mov byte [edi], dl
mov byte [edi + 1], 0xa
add edi, 2
cmp byte [esp + 0x12], 7
mov dword [esp + 0x90], eax
mov eax, dword [eax + 8]
mov dword [esp + 0x28], edi
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], eax
jne 0x4455fa
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], eax
mov ch, byte [eax]
and ch, 7
movzx eax, ch
sub eax, 2
mov byte [esp + 0x12], ch
cmp eax, 5
ja case.default.0x445616
mov edx, dword [esp + 0x44]
mov cl, byte [esp + 0x43]
jmp dword [eax*4 + 0x446324]
mov eax, dword [esp + 0x2c]
mov byte [edi + 1], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x445668
push eax
push edi
call dword [esp + 0x90]
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x445668
push eax
push dword [esp + 0x90]
call dword [esp + 0x90]
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x2c]
push eax
push dword [esp + 0x90]
call dword [esp + 0x90]
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movzx eax, dl
and eax, 7
add eax, 0xfffffffe
cmp eax, 5
ja case.default.0x4456a2
jmp dword [eax*4 + 0x446354]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
shrd ecx, eax, 8
mov dword [esp + 0x30], ecx
cmp ecx, 0x2aaaaaa7
jae case.default.0x4456a2
lea eax, [ecx + ecx*2]
lea eax, [eax*2 + 4]
push eax
push 0
call fcn.00429770
add esp, 8
mov dword [esp + 0x7c], eax
test eax, eax
je case.default.0x4456a2
mov edx, dword [esp + 0x30]
lea esi, [eax + 1]
add edx, edi
mov byte [eax], 0x22
mov dword [esp + 0x20], edx
nop word [eax + eax]
mov cl, byte [edi]
movzx eax, cl
cmp byte [eax + 0x4de940], 0
jne 0x445965
lea eax, [edi + 1]
mov dword [esp + 0x30], eax
movzx eax, byte [eax]
cmp byte [eax + 0x4de940], 0
je 0x445731
mov edi, dword [esp + 0x30]
mov byte [esi], cl
inc esi
jmp 0x445965
movzx eax, byte [edi + 2]
cmp byte [eax + 0x4de940], 0
je 0x44574f
mov ax, word [edi]
mov word [esi], ax
add esi, 2
add edi, 2
jmp 0x445965
movzx eax, byte [edi + 3]
cmp byte [eax + 0x4de940], 0
je 0x445773
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 0x445965
movzx eax, byte [edi + 4]
cmp byte [eax + 0x4de940], 0
je 0x44578f
mov eax, dword [edi]
mov dword [esi], eax
add esi, 4
add edi, 4
jmp 0x445965
movzx eax, byte [edi + 5]
cmp byte [eax + 0x4de940], 0
je 0x4457b1
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 0x445965
movzx eax, byte [edi + 6]
cmp byte [eax + 0x4de940], 0
je 0x4457d5
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 0x445965
movzx eax, byte [edi + 7]
cmp byte [eax + 0x4de940], 0
je 0x4457ff
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 0x445965
lea eax, [edi + 8]
mov dword [esp + 0x30], eax
movzx eax, byte [eax]
cmp byte [eax + 0x4de940], 0
je 0x445828
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x30]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
jmp 0x445965
movzx eax, byte [edi + 9]
cmp byte [eax + 0x4de940], 0
je 0x44584e
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 0x445965
movzx eax, byte [edi + 0xa]
cmp byte [eax + 0x4de940], 0
je 0x445876
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 0x445965
movzx eax, byte [edi + 0xb]
cmp byte [eax + 0x4de940], 0
je 0x4458a4
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 0x445965
movzx eax, byte [edi + 0xc]
cmp byte [eax + 0x4de940], 0
je 0x4458ca
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 0x445965
movzx eax, byte [edi + 0xd]
cmp byte [eax + 0x4de940], 0
je 0x4458f3
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 0x445965
movzx eax, byte [edi + 0xe]
cmp byte [eax + 0x4de940], 0
je 0x44591e
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 0x445965
movzx eax, byte [edi + 0xf]
cmp byte [eax + 0x4de940], 0
je 0x44594f
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 0x445965
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
add esi, 0x10
add edi, 0x10
jmp 0x445700
inc edi
mov edx, dword [esp + 0x20]
cmp edi, edx
jae 0x445b1f
mov dh, byte [edi]
movzx eax, dh
movzx ecx, byte [eax + 0x4de940]
cmp ecx, 5
ja case.default.0x44597e
jmp dword [ecx*4 + 0x44636c]
mov ax, word [eax*2 + str._________________b_t_n___f_r___________________________________________________________________________________________________________________________________________________________]
mov word [esi], ax
add esi, 2
jmp 0x445960
mov dword [esp + 0x60], 0x3030755c
mov eax, dword [esp + 0x60]
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 0x445960
mov cl, byte [edi + 1]
mov word [esp + 0x3c], 0x755c
movzx eax, word [esp + 0x3c]
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.0x44597e
mov cl, byte [edi + 1]
mov dl, byte [edi + 2]
mov word [esp + 0x78], 0x755c
movzx eax, word [esp + 0x78]
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.0x44597e
movzx eax, byte [edi + 1]
and eax, 0x3f
movzx edx, dh
and edx, 7
mov word [esp + 0x74], 0x755c
shl edx, 6
or edx, eax
mov word [esp + 0x70], 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 + 0x74]
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 + 0x70]
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.0x44597e
mov byte [esi], dh
inc esi
mov edx, dword [esp + 0x20]
inc edi
jmp 0x445700
mov byte [esi], 0x22
lea edi, [esi + 1]
mov edx, dword [esp + 0x7c]
mov eax, edx
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x20
push 0
call fcn.00429770
mov ecx, eax
add esp, 8
mov dword [esp + 0x7c], ecx
test ecx, ecx
je case.default.0x4456a2
mov eax, dword [esi]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esi]
and eax, 0x10
mov dword [esp + 0x6c], edx
or eax, 0
je 0x445b85
push edx
push edi
mov edx, 1
call fcn.00440210
add esp, 8
mov edi, eax
jmp 0x4461f6
mov esi, edi
mov eax, edx
mov edx, dword [esp + 0x30]
neg esi
mov dword [esp + 0x1c], esi
adc eax, 0
neg eax
mov dword [esp + 0x60], eax
and edx, 8
je 0x445ba6
mov edx, 1
cmp dword [esp + 0x6c], 0
jg 0x445bbd
jl 0x445bb3
test edi, edi
jae 0x445bbd
mov dword [esp + 0x18], 1
jmp 0x445bc5
mov dword [esp + 0x18], 0
mov byte [ecx], 0x2d
and edx, dword [esp + 0x18]
jne 0x445bdc
mov eax, dword [esp + 0x6c]
mov esi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], eax
lea edi, [edx + ecx]
mov dword [esp + 0x14], edi
test eax, eax
ja 0x445d5d
jb 0x445bf9
cmp esi, 0x5f5e100
jae 0x445d5d
cmp esi, 0x64
jae 0x445c22
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 + 0x14], edi
jmp 0x4461f6
cmp esi, 0x2710
jae 0x445c64
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 + 0x14], edi
jmp 0x4461f6
mov eax, esi
cmp esi, 0xf4240
jae 0x445ccb
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 word [edi], ax
sub edi, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x1c]
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 + 0x14], edi
jmp 0x4461f6
mov ecx, 0x68db8bb
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
mov dword [esp + 0x30], edi
sub esi, eax
mov dword [esp + 0x1c], esi
imul edx, dword [esp + 0x1c], 0x147b
imul esi, edi, 0x147b
mov edi, dword [esp + 0x14]
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
sbb ecx, ecx
neg ecx
sub dword [esp + 0x14], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x14]
mov word [edi], ax
mov edi, dword [esp + 0x30]
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 + 0x1c]
sub edx, eax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 6], ax
add ecx, 8
mov dword [esp + 0x14], ecx
mov edi, ecx
jmp 0x4461f6
mov eax, esi
mov ecx, 0x8461cefd
mul ecx
mov edi, 0xabcc7711
mov dword [esp + 0x48], eax
mov esi, edx
mov eax, dword [esp + 0x1c]
mul edi
mov edi, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x60]
mul ecx
mov ecx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x60]
mov edx, 0xabcc7711
mul edx
add ecx, esi
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x30]
adc edx, 0
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [esp + 0xb8]
adc ecx, 0
mov dword [esp + 0x48], edi
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x6c]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0x1a
shr ecx, 0x1a
cmp dword [esp + 0x60], 0x2386f2
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], esi
ja 0x445fd5
jb 0x445df9
cmp ecx, 0x6fc10000
jae 0x445fd5
imul eax, esi, 0x5f5e100
sub ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, 0x68db8bb
cmp esi, 0x64
jae 0x445e33
mov edi, dword [esp + 0x14]
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 0x445f5e
cmp esi, 0x2710
jae 0x445e75
mov edi, dword [esp + 0x14]
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 0x445f5e
mov eax, esi
cmp esi, 0xf4240
jae 0x445edc
mov ecx, 0x68db9
mov edi, dword [esp + 0x14]
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x20], 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 + 0x20]
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 0x445f5e
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
mov dword [esp + 0x30], edi
sub esi, eax
mov dword [esp + 0x20], esi
imul edx, dword [esp + 0x20], 0x147b
imul esi, edi, 0x147b
mov edi, dword [esp + 0x14]
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
sbb ecx, ecx
neg ecx
sub dword [esp + 0x14], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi], ax
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x14]
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 + 0x1c]
mov edx, 0x68db8bb
mov eax, ecx
mul edx
mov esi, edx
shr esi, 8
imul eax, esi, 0x2710
sub ecx, eax
mov dword [esp + 0x1c], ecx
imul edx, dword [esp + 0x1c], 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 + 0x1c]
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 0x4461f6
imul eax, esi, 0x5f5e100
mov edi, 0x346dc5d6
sub ecx, eax
mov eax, esi
mov dword [esp + 0x1c], ecx
mov ecx, 0x3886594b
mul ecx
mov dword [esp + 0x48], eax
mov esi, edx
mov eax, dword [esp + 0x20]
mul edi
mov edi, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x6c]
mul ecx
mov ecx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x6c]
mov edx, 0x346dc5d6
mul edx
add ecx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
adc edx, 0
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x24]
add edi, ecx
mov ecx, dword [esp + 0xb8]
adc ecx, 0
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x20]
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x18]
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 + 0x20], edi
cmp esi, 0xf4240
jae 0x4460ce
mov ecx, 0x68db9
mul ecx
imul eax, edx, 0x2710
sub esi, eax
mov dword [esp + 0x24], 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 + 0x14]
mov word [edx], ax
sub edx, ecx
movzx eax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x24]
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 0x446154
mul ecx
mov edi, edx
shr edi, 8
imul eax, edi, 0x2710
mov dword [esp + 0x30], edi
sub esi, eax
mov dword [esp + 0x24], esi
imul edx, dword [esp + 0x24], 0x147b
imul esi, edi, 0x147b
mov edi, dword [esp + 0x14]
shr edx, 0x13
shr esi, 0x13
cmp esi, 0xa
sbb ecx, ecx
neg ecx
sub dword [esp + 0x14], ecx
movzx eax, word [ecx + esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, dword [esp + 0x14]
mov word [edi], ax
mov edi, dword [esp + 0x30]
imul eax, esi, 0x64
sub edi, eax
movzx eax, word [edi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x20]
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 + 0x24]
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 + 0x1c]
mov word [edx + 2], ax
add edx, 4
mov eax, edi
mov dword [esp + 0x18], 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 + 0x1c], edi
mov edi, dword [esp + 0x18]
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 + 0x1c]
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 0x445b25
mov eax, dword [esp + 0x7c]
push eax
push dword [esp + 0x90]
call dword [esp + 0x90]
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.00429770
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x4456a2
mov cl, byte [esi]
and cl, 0x18
je 0x446249
mov dword [esp + 0x48], 0x65757274
mov dword [esp + 0x4c], 0xa2c
jmp 0x446259
mov dword [esp + 0x48], 0x736c6166
mov dword [esp + 0x4c], 0xa2c65
mov eax, dword [esp + 0x48]
mov edi, edx
mov esi, dword [esp + 0x4c]
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.00429770
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x4456a2
mov dword [esp + 0x48], 0x6c6c756e
lea edi, [edx + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], 0xa2c
mov ecx, dword [esp + 0x4c]
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.00429770
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x4456a2
mov word [esp + 0x3c], 0x5d5b
lea edi, [edx + 2]
mov ax, word [esp + 0x3c]
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.00429770
mov edx, eax
add esp, 8
test edx, edx
je case.default.0x4456a2
mov word [esp + 0x3c], 0x7d7b
lea edi, [edx + 2]
mov ax, word [esp + 0x3c]
mov word [edx], ax
mov eax, edx
mov byte [edi], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret