Function at 0x6d16af20
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov eax, 0x36dc
push edi
push esi
push ebx
call fcn.6d16e880
sub esp, eax
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_localeconv]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
test eax, eax
je 0x6d16af4f
movzx edx, byte [eax]
test dl, dl
mov byte [esp + 0x38], dl
jne 0x6d16b2e8
mov dword [esp + 0x88], 1
mov edx, 0x2e
mov dword [esp + 0x60], 0x6d181fa0
mov eax, dword [esp + 0x36f4]
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
mov byte [esp + 0x40], dl
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
sub eax, 1
mov ebp, eax
lea esi, cs:[esi]
lea esi, cs:[esi]
mov esi, ebp
movsx eax, byte [ebp + 1]
add ebp, 1
mov dword [esp], eax
mov ebx, eax
call edi
test eax, eax
jne 0x6d16afa0
mov dword [esp + 0x58], eax
mov eax, esi
mov esi, ebx
movzx edx, byte [esp + 0x40]
mov ebx, eax
mov eax, esi
mov dword [esp + 0x38], ebp
cmp al, 0x2d
je 0x6d16b3c0
mov dword [esp + 0x90], 0
cmp al, 0x2b
je 0x6d16b308
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
xor eax, eax
mov ecx, edx
jmp 0x6d16b00f
add eax, 1
movzx ecx, byte [edi + eax]
test cl, cl
je 0x6d16b148
cmp byte [ebx + eax], cl
je 0x6d16b000
lea eax, [esi - 0x30]
cmp al, 9
mov eax, esi
ja 0x6d16b200
cmp al, 0x30
je 0x6d16bc80
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [esp + 0xb0], 0
mov dword [esp + 0x40], 0xa
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x38]
xor edi, edi
mov ebp, edx
lea eax, [esi - 0x30]
cmp al, 9
jbe 0x6d16b3a8
cmp dword [esp + 0x40], 0x10
je 0x6d16b389
mov dword [esp + 0x68], edi
cmp dword [esp + 0x68], 1
mov edx, ebp
sbb eax, eax
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x74]
xor eax, eax
jmp 0x6d16b09f
add eax, 1
movzx edx, byte [ebx + eax]
test dl, dl
je 0x6d16b3e0
cmp byte [ecx + eax], dl
je 0x6d16b090
mov eax, esi
movsx esi, al
mov eax, dword [esp + 0x70]
mov dword [esp], esi
call eax
mov edi, dword [esp + 0x68]
mov dword [esp + 0x4c], edi
cmp eax, 0x70
jne 0x6d16b470
cmp byte [esp + 0xb0], 0
je 0x6d16b470
mov eax, dword [esp + 0x74]
movzx ecx, byte [eax + 1]
cmp cl, 0x2d
je 0x6d16be10
cmp cl, 0x2b
je 0x6d16bb79
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x6d16b480
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x40], 0x10
lea esi, [eax + 1]
je 0x6d16bb9a
mov edi, dword [esp + 0x68]
test edi, edi
jne 0x6d16c7fa
mov eax, dword [esp + 0x8c]
cmp eax, 0xffffffff
je 0x6d16d5b1
xor edx, edx
add eax, 0x1345
adc edx, 0
mov dword [esp + 0x98], eax
mov edi, eax
mov dword [esp + 0x9c], edx
mov ebp, edx
jmp 0x6d16bbeb
mov edi, dword [esp + 0x38]
movzx eax, byte [edi + eax]
sub eax, 0x30
cmp al, 9
ja 0x6d16b014
mov eax, esi
cmp al, 0x30
je 0x6d16bc80
lea eax, [esi - 0x30]
cmp al, 9
jbe 0x6d16b029
mov eax, esi
mov byte [esp + 0x50], dl
mov edi, 1
movsx eax, al
mov dword [esp], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov dword [esp + 0x70], eax
call eax
mov dword [esp + 0x40], 0xa
movzx edx, byte [esp + 0x50]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x68], eax
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
xor eax, eax
mov ecx, edx
jmp 0x6d16b1d0
add eax, 1
movzx ecx, byte [ebp + eax]
test cl, cl
je 0x6d16c15b
cmp byte [ebx + eax], cl
je 0x6d16b1c0
mov eax, edi
test al, al
je 0x6d16d0e7
cmp dword [esp + 0x4c], 0x65
jne 0x6d16d56e
cmp dword [esp + 0x40], 0x10
sete byte [esp + 0xb0]
jmp 0x6d16b042
movsx eax, al
lea ecx, [esi - 0x41]
lea edx, [eax + 0x20]
cmp cl, 0x1a
cmovb eax, edx
cmp eax, 0x69
je 0x6d16bcf0
cmp eax, 0x6e
jne 0x6d16b330
mov edi, dword [esp + 0x38]
xor edx, edx
cmp edi, 0x6d181fa2
jne 0x6d16b25c
jmp 0x6d16c478
movzx ecx, al
sub eax, 0x41
cmp al, 0x19
jbe 0x6d16b245
add esi, 0x20
cmp ecx, esi
jne 0x6d16b330
add edx, 1
cmp edx, 3
je 0x6d16b284
movzx eax, byte [edx + 0x6d181fa2]
movzx esi, byte [edi + edx]
lea ebx, [esi - 0x41]
mov ecx, esi
cmp bl, 0x19
jbe 0x6d16b238
movzx ebx, al
sub eax, 0x41
lea ebp, [ebx + 0x20]
cmp al, 0x1a
cmovb ebx, ebp
cmp ebx, esi
jne 0x6d16b330
test cl, cl
jne 0x6d16b24d
mov eax, dword [esp + 0x38]
cmp byte [eax + 3], 0x28
lea ebp, [eax + 3]
jne 0x6d16b2d3
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov edi, ebp
mov dword [esp + 0x70], eax
lea esi, [esi]
mov ebx, edi
lea edi, [edi + 1]
movzx esi, byte [ebx + 1]
lea eax, [esi - 0x30]
cmp al, 9
jbe 0x6d16b2a0
mov eax, esi
movsx eax, al
mov dword [esp], eax
mov eax, dword [esp + 0x70]
call eax
sub eax, 0x61
cmp al, 0x19
jbe 0x6d16b2a0
mov eax, esi
cmp al, 0x5f
je 0x6d16b2a0
cmp al, 0x29
je 0x6d16d75d
xor edx, edx
xor edi, edi
xor ecx, ecx
mov eax, 0x7fff8000
jmp 0x6d16c486
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
movzx edx, byte [esp + 0x38]
mov dword [esp + 0x88], eax
jmp 0x6d16af67
mov eax, dword [esp + 0x38]
movzx esi, byte [eax + 1]
lea eax, [ebx + 2]
mov dword [esp + 0x38], eax
jmp 0x6d16afe4
add esi, 0x20
cmp esi, ecx
je 0x6d16bd16
lea esi, cs:[esi]
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16b34b
mov eax, dword [esp + 0x36f8]
mov edi, dword [esp + 0x36f4]
mov dword [eax], edi
xor edx, edx
xor edi, edi
xor ecx, ecx
xor eax, eax
mov esi, dword [esp + 0x36f0]
mov dword [esi + 0xc], eax
mov eax, esi
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [esi + 8], ecx
add esp, 0x36dc
pop ebx
pop esi
pop edi
pop ebp
ret
movzx esi, byte [ebx + 1]
add ebx, 1
add edi, 1
lea eax, [esi - 0x30]
cmp al, 9
jbe 0x6d16b3a8
mov eax, esi
movsx eax, al
mov dword [esp], eax
mov eax, dword [esp + 0x70]
call eax
sub eax, 0x61
cmp al, 5
ja 0x6d16b060
jmp 0x6d16b378
add ebx, 1
add edi, 1
movzx esi, byte [ebx]
jmp 0x6d16b04a
lea eax, [ebx + 2]
movzx esi, byte [ebp + 1]
mov dword [esp + 0x90], 1
mov dword [esp + 0x38], eax
jmp 0x6d16afe4
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
xor edx, edx
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x8c]
add eax, edi
mov edi, edx
movzx esi, byte [eax]
sub ebx, eax
mov dword [esp + 0x50], ebx
mov ebx, esi
mov esi, eax
jmp 0x6d16b431
lea ecx, [eax - 0x61]
cmp cl, 5
ja 0x6d16bfe0
cmp bl, 0x30
je 0x6d16b427
cmp ebp, 0xffffffff
cmove ebp, edi
movzx ebx, byte [esi + 1]
add esi, 1
add edi, 1
lea eax, [ebx - 0x30]
cmp al, 9
jbe 0x6d16b41c
mov eax, dword [esp + 0x50]
add eax, esi
mov dword [esp + 0x4c], eax
movsx eax, bl
mov dword [esp], eax
mov eax, dword [esp + 0x70]
call eax
cmp dword [esp + 0x40], 0x10
je 0x6d16b410
mov dword [esp + 0x74], esi
mov dword [esp + 0x8c], ebp
cmp eax, 0x70
je 0x6d16b0c3
lea esi, [esi]
cmp dword [esp + 0x40], 0x10
je 0x6d16b480
cmp eax, 0x65
je 0x6d16b0d1
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x4c]
cmp dword [esp + 0x68], edi
jae 0x6d16b4b7
cmp byte [ecx - 1], 0x30
mov eax, ecx
jne 0x6d16b5bf
lea esi, [esi]
sub eax, 1
cmp byte [eax - 1], 0x30
je 0x6d16b4a0
mov edx, dword [esp + 0x4c]
add edx, eax
sub edx, ecx
mov ecx, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x68]
cmp eax, edi
jne 0x6d16b580
test eax, eax
je 0x6d16b580
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
test edx, edx
js 0x6d16c35e
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16cfba
mov eax, dword [esp + 0x36f8]
mov edi, dword [esp + 0x74]
mov dword [eax], edi
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x6d16c58e
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x38]
movzx ecx, byte [edi]
movzx ebx, byte [edi + 1]
jmp 0x6d16b533
add esi, 1
cmp byte [esi], cl
jne 0x6d16b530
test bl, bl
je 0x6d16bc40
mov edx, ebx
mov eax, 1
jmp 0x6d16b55f
add eax, 1
movzx edx, byte [edi + eax]
test dl, dl
je 0x6d16bc40
cmp byte [esi + eax], dl
je 0x6d16b550
add esi, 1
cmp cl, byte [esi]
jne 0x6d16b530
jmp 0x6d16b53f
mov dword [esp + 0x68], edx
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], ebp
nop
mov ebp, dword [esp + 0x36f8]
test ebp, ebp
je 0x6d16b598
mov eax, dword [esp + 0x36f8]
mov edi, dword [esp + 0x74]
mov dword [eax], edi
mov edi, dword [esp + 0x4c]
test edi, edi
jne 0x6d16b5e0
mov ebp, dword [esp + 0x90]
test ebp, ebp
je 0x6d16b34b
xor edx, edx
xor edi, edi
xor ecx, ecx
mov eax, 0x80000000
jmp 0x6d16b353
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16b5e0
mov eax, dword [esp + 0x36f8]
mov edi, dword [esp + 0x74]
mov dword [eax], edi
lea esi, cs:[esi]
nop
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
test esi, esi
jne 0x6d16b518
cmp dword [esp + 0x40], 0x10
je 0x6d16c1df
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x68]
xor ebx, ebx
mov edi, dword [esp + 0x50]
test ebp, ebp
js 0x6d16c438
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
xor edx, edx
mov ebp, dword [esp + 0x54]
sub eax, ecx
sbb edx, ebx
mov ecx, ebp
cmp edi, eax
sbb ecx, edx
mov ecx, edi
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x54]
cmovge ecx, eax
mov eax, edx
cmovl eax, ebp
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
add edi, eax
sub ecx, eax
mov eax, 0x1345
sbb ebx, edx
xor ebp, ebp
xor edx, edx
sub eax, edi
sbb edx, ebp
cmp eax, ecx
mov dword [esp + 0x78], edi
mov eax, edx
mov dword [esp + 0xe0], ecx
sbb eax, ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebp
jl 0x6d16d176
cmp ecx, 0xffffec9a
mov eax, ebx
sbb eax, 0xffffffff
jl 0x6d16d3e5
mov ebp, dword [esp + 0x78]
test ebp, ebp
jne 0x6d16caa9
lea eax, [esp + 0xfc]
mov dword [esp + 0x50], 0
xor edi, edi
mov dword [esp + 0x70], eax
lea eax, [esp + 0xec]
mov dword [esp + 0x60], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0x54], 0
mov dword [esp + 0x94], eax
mov eax, 1
xor edx, edx
mov dword [esp + 0x68], ecx
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov ebx, edx
shl ecx, 2
shld ebx, eax, 2
add ecx, eax
adc ebx, edx
add ecx, ecx
adc ebx, ebx
mov eax, ecx
mov edx, ebx
mov dword [esp + 0x40], eax
mov ecx, ebx
mov ebx, eax
mov dword [esp + 0x44], edx
shrd eax, edx, 0x1e
mov edx, dword [esp + 0x44]
sar ecx, 0x1f
and ebx, 0x3fffffff
and eax, 0x3fffffff
mov esi, ecx
and ecx, 0xfffffffe
add eax, ebx
shr edx, 0x1c
and esi, 1
add eax, edx
lea ebx, [eax + esi]
mov esi, 0xaaaaaaab
mov eax, ebx
mul esi
mov ebp, edx
and edx, 0xfffffffe
shr ebp, 1
mov eax, ebp
add eax, edx
mov edx, dword [esp + 0x44]
sub ebx, eax
mov eax, dword [esp + 0x40]
add ecx, ebx
mov ebx, ecx
sar ebx, 0x1f
sub eax, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
sbb edx, ebx
mov dword [esp + 0x44], edx
mul esi
mov edx, 0x4070
add eax, 0x72
cmp eax, edx
cmovg eax, edx
add eax, ecx
mov dword [esp + 0x74], eax
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x4c]
xor edx, edx
mov ebx, ebp
mov ecx, esi
mov dword [esp + 0x40], ebp
mov eax, esi
sar ebx, 0x1f
sub ecx, dword [esp + 0x80]
mov dword [esp + 0x44], ebx
mov ebx, edx
sbb ebx, dword [esp + 0x84]
cmp ecx, ebp
mov ecx, ebx
mov ebx, dword [esp + 0x44]
sbb ecx, ebx
jge 0x6d16b806
mov ecx, dword [esp + 0x78]
sub esi, ecx
mov ebx, esi
mov dword [esp + 0x74], esi
sar ebx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
cmp ecx, eax
mov ecx, ebx
sbb ecx, edx
jl 0x6d16c554
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x80], 0
sub eax, ecx
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x68]
sub eax, ecx
mov dword [esp + 0x40], eax
test al, 1
je 0x6d16c530
mov eax, dword [esp + 0x70]
mov esi, sym.libquadmath_0.dll___quadmath_fpioconst_pow10
mov ebx, 1
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x1be0]
mov dword [esp + 0x68], eax
mov ebp, eax
lea esi, cs:[esi]
lea esi, [esi]
mov eax, dword [esp + 0x58]
xor dword [esp + 0x40], ebx
test eax, eax
jne 0x6d16b8e4
mov eax, dword [esi + 4]
sub eax, 2
lea edx, [eax*4]
mov dword [esp + 0x58], eax
mov eax, dword [esi]
mov dword [esp + 8], edx
lea eax, [eax*4 + 0x6d17e7e8]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, dword [esp + 0x40]
add ebx, ebx
add esi, 0x10
test ecx, ecx
je 0x6d16b94c
test dword [esp + 0x40], ebx
jne 0x6d16b880
add ebx, ebx
add esi, 0x10
test dword [esp + 0x40], ebx
je 0x6d16b8cd
mov eax, dword [esp + 0x58]
xor dword [esp + 0x40], ebx
test eax, eax
je 0x6d16b88c
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov edx, dword [esi + 4]
lea eax, [edx - 2]
mov edx, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], edx
lea eax, [eax*4 + 0x6d17e7e8]
mov dword [esp + 4], eax
call sym.libquadmath_0.dll___quadmath_mpn_mul
mov ecx, dword [esp + 0x58]
mov edx, dword [esi + 4]
lea ecx, [ecx + edx - 2]
mov dword [esp + 0x58], ecx
test eax, eax
jne 0x6d16c0f8
sub ecx, 1
mov eax, ebp
add ebx, ebx
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x40]
add esi, 0x10
mov dword [esp + 0x4c], eax
test ecx, ecx
jne 0x6d16b8c7
mov eax, dword [esp + 0x70]
cmp ebp, eax
je 0x6d16d2f0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
call fcn.6d16acd0
mov eax, dword [esp + 0x58]
sub eax, 1
mov dword [esp + 0x4c], eax
bsr eax, dword [esp + eax*4 + 0x1be0]
xor eax, 0x1f
mov ebx, eax
jne 0x6d16cf15
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xe4], edx
cmp eax, 1
je 0x6d16cdc7
cmp eax, 2
jne 0x6d16c5cc
cmp dword [esp + 0xdc], 1
mov ebp, dword [esp + 0x1be0]
mov ecx, dword [esp + 0x1be4]
mov esi, dword [esp + 0xfc]
jle 0x6d16d37b
mov eax, dword [esp + 0xf4]
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x4c], eax
cmp ebp, 1
mov eax, ebp
mov edx, dword [esp + 0x54]
mov byte [esp + 0x78], 0
adc eax, 0xffffffff
mov byte [esp + 0x40], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov byte [esp + 0x68], 0
mov dword [esp + 0x38], edi
cmp ecx, ebx
jne 0x6d16c940
add esi, ecx
mov ebx, esi
jae 0x6d16c9ea
mov edx, dword [esp + 0x38]
sub ebx, ebp
xor esi, esi
add esi, ebp
adc ebx, 0
test edx, edx
je 0x6d16ca52
mov edx, esi
mov esi, 0xffffffff
cmp dword [esp + 0x38], 0x51
jle 0x6d16cd68
cmp byte [esp + 0x78], 0
mov edi, dword [esp + 0x38]
mov ecx, edx
je 0x6d16baaf
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xf4], eax
cmp byte [esp + 0x40], 0
je 0x6d16bacc
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xf0], eax
cmp byte [esp + 0x68], 0
je 0x6d16cfa5
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov eax, 0x71
sub eax, edi
mov ebp, eax
jne 0x6d16cf6e
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], esi
lea eax, [esp + 0xc0]
mov ecx, dword [esp + 0x58]
or edx, edi
mov edi, dword [esp + 0x90]
or edx, ebx
mov ebx, dword [esp + 0x5c]
setne dl
mov dword [esp + 8], edi
movzx edx, dl
mov dword [esp + 0x14], edx
mov edx, 0x1f
sub edx, ebp
mov dword [esp + 0x10], edx
add ecx, 0xffffffff
adc ebx, 0xffffffff
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x60]
call fcn.6d16a4a0
mov edx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
jmp 0x6d16b353
mov edi, dword [esp + 0x74]
movzx ecx, byte [edi + 2]
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x6d16b480
cmp dword [esp + 0x40], 0x10
lea esi, [edi + 2]
jne 0x6d16b108
mov edi, dword [esp + 0x68]
test edi, edi
je 0x6d16d314
mov eax, 0x1000
xor edx, edx
sub eax, edi
sbb edx, 0
shld edx, eax, 2
shl eax, 2
add eax, 3
adc edx, 0
xor ebp, ebp
xor edi, edi
mov ebx, edx
cmp eax, ebp
sbb ebx, edi
cmovge ebp, eax
cmovge edi, edx
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov eax, edi
add eax, ebp
adc eax, 0
mov ebx, eax
mov eax, 0xcccccccd
mul ebx
mov eax, edx
and edx, 0xfffffffc
shr eax, 2
add eax, edx
mov edx, ebp
sub ebx, eax
mov eax, edi
sub eax, ebx
sbb edx, 0
mov edi, eax
imul ebx, edx, 0xcccccccd
imul edx, eax, 0xcccccccc
mov eax, 0xcccccccd
add ebx, edx
mul edi
add edx, ebx
xor ebx, ebx
shrd eax, edx, 1
shr edx, 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jmp 0x6d16beb8
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x38], esi
xor edx, edx
sub dword [esp + 0x4c], edi
add eax, edi
add dword [esp + 0x38], eax
cmp dword [esp + 0x40], 0x10
mov eax, edi
je 0x6d16c1d0
sub dword [esp + 0x50], edi
sbb dword [esp + 0x54], edx
jmp 0x6d16b610
mov eax, dword [esp + 0x38]
mov byte [esp + 0x4c], dl
movsx eax, byte [eax + 1]
mov dword [esp], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov dword [esp + 0x70], eax
call eax
mov dword [esp + 0x40], 0xa
movzx edx, byte [esp + 0x4c]
cmp eax, 0x78
je 0x6d16c44b
mov ebx, dword [esp + 0x38]
lea esi, cs:[esi]
lea esi, [esi]
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 0x30
je 0x6d16bcc0
mov esi, eax
lea eax, [esi - 0x30]
cmp al, 9
ja 0x6d16c107
cmp dword [esp + 0x40], 0x10
mov dword [esp + 0x38], ebx
sete byte [esp + 0xb0]
jmp 0x6d16b042
mov edi, dword [esp + 0x38]
xor edx, edx
cmp edi, 0x6d181fa6
jne 0x6d16bd25
jmp 0x6d16bd4d
movzx ecx, al
sub eax, 0x41
cmp al, 0x19
ja 0x6d16b320
cmp ecx, esi
jne 0x6d16b330
add edx, 1
cmp edx, 3
je 0x6d16bd4d
movzx eax, byte [edx + 0x6d181fa6]
movzx esi, byte [edi + edx]
lea ebx, [esi - 0x41]
mov ecx, esi
cmp bl, 0x19
jbe 0x6d16bd00
movzx ebx, al
sub eax, 0x41
lea ebp, [ebx + 0x20]
cmp al, 0x1a
cmovb ebx, ebp
cmp ebx, esi
jne 0x6d16b330
test cl, cl
jne 0x6d16bd16
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16bde8
mov edi, dword [esp + 0x38]
xor edx, edx
mov eax, 0x69
lea ecx, [edi + 3]
cmp edi, 0x6d181fa7
je 0x6d16d5de
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x38]
jmp 0x6d16bda5
movzx ecx, al
sub eax, 0x41
cmp al, 0x19
ja 0x6d16ca3a
cmp ecx, ebp
jne 0x6d16ca49
add edx, 1
cmp edx, 5
je 0x6d16bdd8
movzx eax, byte [edx + str.inity]
movzx ebp, byte [edi + edx + 3]
lea esi, [ebp - 0x41]
mov dword [esp + 0x40], ebp
mov ecx, ebp
mov ebx, esi
cmp bl, 0x19
jbe 0x6d16bd80
movzx esi, al
sub eax, 0x41
cmp al, 0x1a
lea ebp, [esi + 0x20]
mov eax, dword [esp + 0x40]
cmovb esi, ebp
cmp esi, eax
jne 0x6d16ca49
test cl, cl
jne 0x6d16bd96
mov ecx, dword [esp + 0x38]
add ecx, 8
mov eax, dword [esp + 0x36f8]
mov dword [eax], ecx
mov ebp, dword [esp + 0x90]
xor edx, edx
xor edi, edi
xor ecx, ecx
mov eax, 0xffff0000
test ebp, ebp
jne 0x6d16b353
mov eax, 0x7fff0000
jmp 0x6d16b353
movzx ecx, byte [eax + 2]
lea esi, [eax + 2]
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x6d16b480
xor edx, edx
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x68]
je 0x6d16c81f
add eax, 0x13b4
adc edx, 0
mov edi, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x9c]
add edi, edx
mov eax, edi
mov ebx, eax
mov edi, 0xcccccccd
adc ebx, 0
mov eax, ebx
mul edi
mov ebp, edx
and edx, 0xfffffffc
shr ebp, 2
mov eax, ebp
add eax, edx
mov edx, dword [esp + 0x9c]
sub ebx, eax
mov eax, dword [esp + 0x98]
sub eax, ebx
sbb edx, 0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
imul ebx, edx, 0xcccccccd
mov dword [esp + 0x54], edx
imul edx, dword [esp + 0x50], 0xcccccccc
add ebx, edx
mul edi
add edx, ebx
mov ebx, 1
shrd eax, edx, 1
shr edx, 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0xb4], ebx
xor eax, eax
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x50], esi
mov edi, edx
mov esi, eax
lea esi, [esi]
sub ecx, 0x30
mov ebx, dword [esp + 0x7c]
movsx ecx, cl
mov dword [esp + 0x94], ecx
mov edx, ebx
mov dword [esp + 0x80], ecx
sar ecx, 0x1f
xor edx, edi
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x78]
mov eax, ecx
xor eax, esi
or eax, edx
je 0x6d16c010
mov eax, esi
mov edx, edi
shl eax, 2
shld edx, esi, 2
add eax, esi
mov esi, dword [esp + 0x80]
adc edx, edi
add eax, eax
mov edi, dword [esp + 0x84]
adc edx, edx
add esi, eax
adc edi, edx
add dword [esp + 0x50], 1
mov eax, dword [esp + 0x50]
movzx ecx, byte [eax]
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x6d16ca74
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov ebp, 1
cmp eax, esi
mov eax, edx
sbb eax, edi
jge 0x6d16bed0
mov eax, esi
mov dword [esp + 0xe4], edi
mov esi, dword [esp + 0x50]
mov dword [esp + 0xe0], eax
mov ebx, dword [esp + 0xb4]
cmp dword [esp + 0x8c], 0xffffffff
je 0x6d16bf94
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [eax], 0x22
test ebx, ebx
je 0x6d16c5a8
mov eax, dword [esp + 0x90]
xor edx, edx
xor edi, edi
xor ecx, ecx
test eax, eax
jne 0x6d16c4b0
xor eax, eax
lea esi, cs:[esi]
movzx ebx, byte [esi + 1]
add esi, 1
sub ebx, 0x30
cmp bl, 9
jbe 0x6d16bfb0
mov ebx, dword [esp + 0x36f8]
test ebx, ebx
je 0x6d16b353
mov ebx, dword [esp + 0x36f8]
mov dword [ebx], esi
jmp 0x6d16b353
mov dword [esp + 0x74], esi
mov dword [esp + 0x8c], ebp
cmp eax, 0x70
jne 0x6d16b480
cmp byte [esp + 0xb0], 0
jne 0x6d16b0d1
jmp 0x6d16b480
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
add eax, edx
adc eax, 0
mov ebx, eax
mov eax, 0xcccccccd
mul ebx
mov eax, edx
and edx, 0xfffffffc
shr eax, 2
add eax, edx
mov edx, dword [esp + 0x9c]
sub ebx, eax
mov eax, dword [esp + 0x98]
sub eax, ebx
sbb edx, 0
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xac], edx
imul edx, dword [esp + 0xac], 0xcccccccd
mov ebx, edx
imul edx, dword [esp + 0xa8], 0xcccccccc
add ebx, edx
mov edx, 0xcccccccd
mul edx
add edx, ebx
shrd eax, edx, 1
shr edx, 1
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 2
shl ecx, 2
add eax, ecx
mov ecx, dword [esp + 0x98]
adc edx, ebx
add eax, eax
mov ebx, dword [esp + 0x9c]
adc edx, edx
sub ecx, eax
mov eax, dword [esp + 0x94]
sbb ebx, edx
cmp ecx, eax
mov ecx, dword [esp + 0x84]
mov eax, ebx
sbb eax, ecx
jge 0x6d16bf06
mov eax, ebp
mov edx, esi
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0x50]
test al, al
je 0x6d16bf76
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], edi
jmp 0x6d16bf76
mov eax, ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
jmp 0x6d16b8b6
mov eax, esi
mov byte [esp + 0x50], dl
movsx eax, al
mov dword [esp], eax
mov eax, dword [esp + 0x70]
call eax
cmp dword [esp + 0x40], 0x10
movzx edx, byte [esp + 0x50]
mov ecx, eax
mov dword [esp + 0x4c], eax
setne al
sub ecx, 0x61
mov edi, eax
cmp ecx, 5
ja 0x6d16d12b
test al, al
jne 0x6d16d12b
mov dword [esp + 0x38], ebx
mov byte [esp + 0xb0], 1
mov dword [esp + 0x40], 0x10
jmp 0x6d16b042
cmp dword [esp + 0x40], 0x10
mov ecx, dword [esp + 0x68]
sete byte [esp + 0xb0]
cmp dword [esp + 0x38], ecx
movzx eax, byte [esp + 0xb0]
sete bl
and bl, al
je 0x6d16b042
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x88]
movsx eax, byte [eax + edi]
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x6d16c80b
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov byte [esp + 0x4c], dl
call eax
sub eax, 0x61
cmp al, 5
ja 0x6d16d598
mov byte [esp + 0xb0], bl
movzx edx, byte [esp + 0x4c]
mov dword [esp + 0x40], 0x10
jmp 0x6d16b042
shld edx, edi, 2
shl eax, 2
sub dword [esp + 0x50], eax
sbb dword [esp + 0x54], edx
mov ebp, dword [esp + 0x38]
lea esi, cs:[esi]
lea esi, cs:[esi]
movzx edi, byte [ebp]
mov ebx, ebp
lea ebp, [ebp + 1]
mov eax, edi
movsx esi, al
mov dword [esp], esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je 0x6d16c1f0
mov eax, edi
cmp al, 0x30
jne 0x6d16c22e
lea esi, cs:[esi]
lea esi, [esi]
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 0x30
je 0x6d16c220
movsx esi, al
lea eax, [esi - 0x30]
add ebx, 1
cmp eax, 9
ja 0x6d16c568
mov ebp, dword [eax*4 + 0x6d181fc0]
mov ecx, 0x11
mov esi, 0x10
xor edx, edx
sub ecx, ebp
sub esi, ebp
shl eax, cl
mov dword [esp + 0x38], eax
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x68]
add eax, 0xffffffff
adc edx, 0xffffffff
shld edx, eax, 2
shl eax, 2
mov dword [esp + 0x40], eax
lea eax, [ebp - 1]
mov ebp, 3
mov dword [esp + 0x44], edx
cdq
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
add eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
adc edx, dword [esp + 0x54]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x54], edx
sub eax, 1
mov dword [esp + 0xe4], edx
mov dword [esp + 0x40], eax
jne 0x6d16c2eb
jmp 0x6d16c4c2
lea ecx, [esi - 3]
mov edi, dword [esp + 0x38]
sub esi, 4
shl eax, cl
or eax, edi
mov dword [esp + ebp*4 + 0xec], eax
sub dword [esp + 0x40], 1
je 0x6d16c4ba
mov eax, dword [esp + ebp*4 + 0xec]
mov dword [esp + 0x38], eax
movsx edi, byte [ebx]
mov dword [esp], edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
jne 0x6d16c307
mov eax, dword [esp + 0x88]
add ebx, eax
movsx edi, byte [ebx]
lea eax, [edi - 0x30]
add ebx, 1
cmp eax, 9
jbe 0x6d16c31e
mov dword [esp], edi
mov eax, dword [esp + 0x70]
call eax
sub eax, 0x57
cmp esi, 2
jg 0x6d16c2c0
mov ecx, 3
mov edi, eax
lea edx, [ebp - 1]
sub ecx, esi
shr edi, cl
mov ecx, edi
mov edi, dword [esp + 0x38]
or ecx, edi
mov dword [esp + ebp*4 + 0xec], ecx
lea ecx, [esi + 0x1d]
shl eax, cl
test ebp, ebp
je 0x6d16d075
mov dword [esp + edx*4 + 0xec], eax
add esi, 0x1c
mov ebp, edx
jmp 0x6d16c2d5
cmp byte [esp + 0xb0], 0
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
jne 0x6d16c579
xor edi, edi
cmp dword [esp + 0x40], 0x10
lea esi, [ecx - 1]
mov edx, dword [esp + 0x68]
mov ecx, edi
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
movzx ebx, byte [esi]
je 0x6d16c3f3
lea esi, [esi]
movsx eax, bl
sub eax, 0x30
cmp eax, 9
jbe 0x6d16c3bd
movzx ebx, byte [esi - 1]
sub esi, 1
movsx eax, bl
sub eax, 0x30
cmp eax, 9
ja 0x6d16c3ab
cmp bl, 0x30
jne 0x6d16cd49
sub edx, 1
add edi, dword [esp + 0x78]
adc ebp, dword [esp + 0x7c]
sub dword [esp + 0x4c], 1
mov eax, ebp
setne cl
shr eax, 0x1f
and cl, al
je 0x6d16b56d
sub esi, 1
cmp dword [esp + 0x40], 0x10
movzx ebx, byte [esi]
jne 0x6d16c3a0
mov dword [esp + 0x50], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebp
mov ebp, ebx
mov ebx, esi
mov esi, ecx
mov eax, ebp
movsx eax, al
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je 0x6d16c430
mov ecx, esi
mov edx, dword [esp + 0x50]
mov esi, ebx
mov edi, dword [esp + 0x68]
mov ebx, ebp
mov ebp, dword [esp + 0x6c]
jmp 0x6d16c3bd
sub ebx, 1
movzx ebp, byte [ebx]
jmp 0x6d16c405
mov eax, ecx
xor edx, edx
neg eax
sbb edx, ebx
cmp eax, edi
mov ecx, edx
sbb ecx, ebp
jmp 0x6d16b63e
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], 0x10
movzx esi, byte [eax + 2]
lea ebx, [eax + 2]
mov dword [esp + 0x38], ebx
mov eax, esi
cmp al, 0x30
je 0x6d16bcb0
jmp 0x6d16bccd
xor edi, edi
xor ecx, ecx
mov eax, 0x7fff8000
mov ebp, 0x6d181fa5
mov esi, dword [esp + 0x36f8]
test esi, esi
je 0x6d16c49a
mov esi, dword [esp + 0x36f8]
mov dword [esi], ebp
mov ebx, dword [esp + 0x90]
test ebx, ebx
mov ebx, 0xffff8000
cmovne eax, ebx
jmp 0x6d16b353
mov eax, 0x80000000
jmp 0x6d16bfb0
test ebp, ebp
je 0x6d16c850
shl ebp, 2
lea edi, [esp + 0xec]
xor ebx, ebx
lea eax, [ebp - 1]
mov dword [esp + 0x60], edi
mov dword [esp + ebp + 0xe8], 0
cmp eax, 4
jb 0x6d16c85b
and eax, 0xfffffffc
mov ecx, 4
mov dword [esp + 0xec], 0
lea edx, [eax - 1]
shr edx, 2
and edx, 1
cmp ecx, eax
jae 0x6d16c85b
test edx, edx
jne 0x6d16d410
mov edi, dword [esp + 0x60]
mov dword [edi + ecx], ebx
mov dword [edi + ecx + 4], ebx
add ecx, 8
cmp ecx, eax
jb 0x6d16c515
jmp 0x6d16c85b
mov eax, dword [esp + 0x70]
mov esi, sym.libquadmath_0.dll___quadmath_fpioconst_pow10
mov ebx, 1
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x1be0]
mov dword [esp + 0x68], eax
mov ebp, eax
jmp 0x6d16b8b6
mov dword [esp + 0x80], 1
mov eax, dword [esp + 0x74]
jmp 0x6d16b841
mov dword [esp], esi
mov eax, dword [esp + 0x70]
call eax
sub eax, 0x57
jmp 0x6d16c23d
mov dword [esp + 0x78], 4
mov dword [esp + 0x7c], 0
jmp 0x6d16c37c
cmp dword [esp + 0x40], 0x10
je 0x6d16c1df
mov ecx, dword [esp + 0x68]
xor ebx, ebx
jmp 0x6d16b626
mov ebp, dword [esp + 0x90]
xor edx, edx
xor edi, edi
xor ecx, ecx
mov eax, 0xffff0000
test ebp, ebp
jne 0x6d16bfb0
mov eax, 0x7fff0000
jmp 0x6d16bfb0
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + eax*4 + 0x1be0]
mov eax, dword [esp + 0x58]
lea ecx, [eax - 2]
sub eax, ebp
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + ecx*4 + 0x1be0]
mov dword [esp + 8], ebp
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x68]
lea eax, [ecx + eax*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_cmp
mov ecx, dword [esp + 0x38]
test eax, eax
js 0x6d16c633
mov dword [esp + ebp*4 + 0xfc], 0
lea eax, [ebp + 1]
mov dword [esp + 0xdc], eax
mov ebp, eax
cmp dword [esp + 0x58], ebp
jg 0x6d16d206
test ebp, ebp
jle 0x6d16c66b
lea eax, [ebp*4]
mov dword [esp + 0x38], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [esp + 0x100]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xfc], 0
mov eax, dword [esp + 0x58]
mov dword [esp + eax*4 + 0x1be0], 0
mov ebp, dword [esp + eax*4 + 0xfc]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], edi
mov edi, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
shl eax, 2
mov dword [esp + 0x74], eax
lea esi, cs:[esi]
mov ebx, 0xffffffff
cmp esi, ebp
jne 0x6d16c7ac
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym.libquadmath_0.dll___quadmath_mpn_submul_1
mov ecx, dword [esp + 0x58]
cmp eax, dword [esp + ecx*4 + 0xfc]
je 0x6d16c705
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
sub ebx, 1
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp], ebp
call sym.libquadmath_0.dll___quadmath_mpn_add_n
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + eax*4 + 0xfc]
mov dword [esp + ecx*4 + 0xfc], ebp
test eax, eax
jle 0x6d16c73e
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [esp + 0x100]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov dword [esp + 0xfc], 0
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x6d16c8a0
test ebx, ebx
je 0x6d16c9af
bsr eax, ebx
mov ecx, 0x20
mov dword [esp + 0xec], ebx
mov ebx, 0xffffffff
mov dword [esp + 0xf0], 0
xor eax, 0x1f
cdq
sub ecx, eax
sub dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
sbb dword [esp + 0x54], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x38], ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
cmp esi, ebp
je 0x6d16c6bd
mov eax, dword [esp + 0x4c]
mov edx, ebp
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + eax*4 + 0xfc]
mov dword [esp + 0x78], eax
div esi
mov ebx, eax
mov ebp, edx
mov eax, edi
mul ebx
jmp 0x6d16c7d7
cmp eax, edi
sbb edx, 0
sub eax, edi
cmp ebp, edx
jb 0x6d16c7ee
jne 0x6d16c6bd
cmp dword [esp + ecx*4 + 0xfc], eax
jae 0x6d16c6bd
sub ebx, 1
add ebp, esi
jae 0x6d16c7d0
jmp 0x6d16c6bd
mov eax, 0x1345
xor edx, edx
sub eax, edi
sbb edx, 0
jmp 0x6d16bbbf
mov byte [esp + 0xb0], bl
mov dword [esp + 0x40], 0x10
jmp 0x6d16b042
shld edx, eax, 2
shl eax, 2
add eax, 0x406e
adc edx, 0
mov dword [esp + 0x98], eax
mov ebp, edx
mov edx, eax
mov dword [esp + 0x9c], ebp
mov ebx, dword [esp + 0x9c]
add edx, ebx
mov eax, edx
jmp 0x6d16be56
lea eax, [esp + 0xec]
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x14], 0
lea eax, [esp + 0xc0]
mov dword [esp + 0x10], 0
mov dword [esp + 8], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0xc], 0
mov dword [esp], edi
mov dword [esp + 4], ebp
jmp 0x6d16bb4f
cmp dword [esp + 0x38], 0x51
jle 0x6d16c9ff
mov edi, dword [esp + 0x38]
mov eax, 0x71
sub eax, edi
mov dword [esp + 0x40], eax
jne 0x6d16cd98
mov esi, dword [esp + 0x58]
test esi, esi
js 0x6d16c8f0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x70]
jmp 0x6d16c8e5
sub eax, 1
jb 0x6d16c8ec
mov ecx, dword [edx + eax*4]
test ecx, ecx
je 0x6d16c8e0
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x80]
mov dword [esp + 0xc], ebx
lea eax, [esp + 0xc0]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
not edx
shr edx, 0x1f
or edi, edx
mov edx, 0x1f
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x40]
sub edx, edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
jmp 0x6d16bb42
mov eax, esi
mov edx, ebx
div ecx
mov esi, eax
mov ebx, edx
mov eax, ebp
mul esi
nop
cmp ebx, edx
jb 0x6d16c95c
cmp edx, ebx
jne 0x6d16c968
test eax, eax
je 0x6d16c968
sub esi, 1
sub eax, ebp
sbb edx, 0
add ebx, ecx
jae 0x6d16c950
xor edi, edi
sub edi, eax
sbb ebx, edx
mov eax, dword [esp + 0x38]
mov edx, edi
test eax, eax
jne 0x6d16ba7e
test esi, esi
jne 0x6d16d13c
add dword [esp + 0x58], 0xffffffe0
mov esi, edi
adc dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x4c], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x68], 1
mov byte [esp + 0x40], 1
jmp 0x6d16ba50
add dword [esp + 0x50], 0xffffffe0
mov eax, dword [esp + 0x50]
adc dword [esp + 0x54], 0xffffffff
mov edx, dword [esp + 0x54]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
jmp 0x6d16c6b0
mov eax, ebp
mov edx, dword [esp + 0x88]
mov esi, 0xffffffff
neg eax
jmp 0x6d16c950
mov eax, dword [esp + 0xf4]
add dword [esp + 0x38], 0x20
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], eax
jmp 0x6d16c6b0
mov ebx, dword [esp + 0x40]
add ebx, 0x20
cmp ecx, ebx
je 0x6d16bd96
mov ecx, dword [esp + 0x4c]
jmp 0x6d16bddf
mov dword [esp + 0x38], 0x20
mov dword [esp + 0x4c], 0xffffffff
mov byte [esp + 0x68], 1
mov dword [esp + 0x70], 0
jmp 0x6d16c9a5
mov ebx, dword [esp + 0xb4]
mov eax, esi
mov edx, edi
mov esi, dword [esp + 0x50]
test ebx, ebx
je 0x6d16ca8e
neg eax
adc edx, 0
neg edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x74], esi
jmp 0x6d16b484
mov edi, dword [esp + 0x88]
lea eax, [esp + 0xfc]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x70], eax
mov ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], edi
lea edi, [esp + 0xe0]
mov dword [esp + 0xb0], edi
mov dword [esp + 4], edi
lea edi, [esp + 0xdc]
mov dword [esp], edi
mov dword [esp + 0x94], edi
call fcn.6d16acd0
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x44], edx
mov edi, eax
mov dword [esp + 0x40], eax
xor eax, eax
cmp eax, edi
sbb eax, edx
jge 0x6d16cc85
mov eax, dword [esp + 0x70]
mov ecx, 1
mov ebx, sym.libquadmath_0.dll___quadmath_fpioconst_pow10
lea edi, [esp + 0x1be0]
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x50], ecx
lea esi, cs:[esi]
mov eax, dword [esp + 0x50]
cdq
mov edi, eax
and edi, dword [esp + 0x40]
mov dword [esp + 0x60], eax
mov ecx, edx
mov edx, eax
mov eax, edi
mov ebp, ecx
and ebp, dword [esp + 0x44]
mov dword [esp + 0x64], ecx
or eax, ebp
je 0x6d16cc38
mov eax, dword [ebx + 4]
xor edx, dword [esp + 0x40]
xor ecx, dword [esp + 0x44]
mov dword [esp + 0xe0], edx
lea ebp, [eax - 2]
mov eax, dword [ebx]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
lea eax, [eax*4 + 0x6d17e7e8]
cmp ebp, esi
jg 0x6d16cc44
mov dword [esp + 0x10], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
add esi, ebp
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_mul
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x64]
cmp eax, 1
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x98]
sbb esi, 0
shl dword [esp + 0x50], 1
add ebx, 0x10
mov ecx, dword [esp + 0x9c]
xor eax, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0xdc], esi
xor ebp, edi
or eax, ebp
je 0x6d16cc5c
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x74], eax
jmp 0x6d16cb50
shl dword [esp + 0x50], 1
add ebx, 0x10
jmp 0x6d16cb50
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x10], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
jmp 0x6d16cbc5
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x74], edi
jne 0x6d16cc85
lea eax, [esi*4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
lea eax, [esi - 1]
mov edx, esi
mov dword [esp + 0x40], eax
bsr eax, dword [esp + eax*4 + 0xfc]
shl edx, 5
mov edi, edx
xor eax, 0x1f
sub edi, eax
cmp edi, 0x4000
jg 0x6d16d176
cmp edi, 0x71
jg 0x6d16d42d
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x78], ecx
je 0x6d16d5e6
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0xec]
lea ebx, [esi*4]
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x60], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
cmp esi, 4
je 0x6d16cd12
mov ecx, dword [esp + 0x60]
mov eax, 4
mov dword [esp + 4], 0
sub eax, esi
shl eax, 2
add ebx, ecx
mov dword [esp + 8], eax
mov dword [esp], ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, edi
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0xe0]
sar eax, 0x1f
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x54], eax
test edi, edi
jle 0x6d16b710
mov eax, 0x72
mov dword [esp + 0x68], ecx
sub eax, edi
mov dword [esp + 0x74], eax
jmp 0x6d16b7b8
mov dword [esp + 0x68], edx
test cl, cl
je 0x6d16b580
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], ebp
jmp 0x6d16b580
mov eax, dword [esp + 0x74]
add dword [esp + 0x38], 0x20
mov byte [esp + 0x78], 1
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], esi
mov esi, edx
mov dword [esp + 0x70], eax
jmp 0x6d16c9a5
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_lshift
lea ecx, [edi - 0x51]
mov eax, ebx
shr eax, cl
or dword [esp + 0xec], eax
jmp 0x6d16c8c0
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0x54]
mov byte [esp + 0x58], 0
mov ebx, dword [esp + 0x1be0]
mov byte [esp + 0x40], 0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x3c], edx
mov ebp, dword [esp + 0xfc]
mov esi, ebx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], eax
xor eax, eax
mov ebx, eax
mov edx, ebp
xor eax, eax
div esi
mov ebp, edx
test edi, edi
je 0x6d16cfdf
cmp edi, 0x51
jle 0x6d16da8b
mov esi, eax
test bl, bl
je 0x6d16ce4e
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xf4], eax
cmp byte [esp + 0x58], 0
je 0x6d16ce6b
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xf0], eax
cmp byte [esp + 0x40], 0
je 0x6d16cecc
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ebx
mov eax, 0x71
sub eax, edi
jne 0x6d16cede
or edx, dword [esp + 0x80]
mov dword [esp + 0xc], esi
lea eax, [esp + 0xc0]
setne dl
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
movzx edx, dl
mov dword [esp + 0x14], edx
lea edx, [edi - 0x52]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
jmp 0x6d16bb42
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
jmp 0x6d16ce88
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], eax
mov dword [esp + 0x40], edx
call sym.libquadmath_0.dll___quadmath_mpn_lshift
lea ecx, [edi - 0x51]
mov eax, esi
mov edx, dword [esp + 0x40]
shr eax, cl
or dword [esp + 0xec], eax
jmp 0x6d16ce91
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_lshift
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_lshift
test eax, eax
je 0x6d16b9a7
lea edx, [esi + 1]
mov dword [esp + esi*4 + 0xfc], eax
mov dword [esp + 0xdc], edx
jmp 0x6d16b9a7
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], eax
mov dword [esp + 0x38], ecx
call sym.libquadmath_0.dll___quadmath_mpn_lshift
lea ecx, [edi - 0x51]
mov eax, esi
shr eax, cl
mov ecx, dword [esp + 0x38]
or dword [esp + 0xec], eax
jmp 0x6d16bafc
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
jmp 0x6d16baed
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x6d16b518
xor ebx, ebx
cmp dword [esp + 0x40], 0x10
mov ecx, dword [esp + 0x68]
jne 0x6d16b626
jmp 0x6d16c1df
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
lea esi, cs:[esi]
nop
test eax, eax
je 0x6d16d068
mov dword [esp + 0x3c], ebx
bsr ebx, eax
mov ebp, edx
mov edi, 0x40
xor ebx, 0x1f
mov byte [esp + 0x40], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, ebx
cdq
sub dword [esp + 0x38], ebx
sbb dword [esp + 0x3c], edx
mov edx, ebp
xor eax, eax
sub edi, ebx
div esi
mov dword [esp + 0x4c], eax
xor eax, eax
div esi
mov ebp, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x70], ecx
add edi, 0x20
mov ebx, 1
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x58], 1
mov dword [esp + 0xbc], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x4c], eax
jmp 0x6d16ce16
add ecx, 0xffffffe0
adc ebx, 0xffffffff
div esi
jmp 0x6d16cff0
mov edx, dword [esp + 0x40]
sub edx, 1
je 0x6d16d0a4
add edx, ebx
jmp 0x6d16d097
add ebx, 1
cmp ebx, edx
je 0x6d16d0a4
cmp byte [ebx], 0x30
je 0x6d16d090
mov dword [esp + 0x58], 1
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0xc0]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x10], 0x1f
lea edx, [esp + 0xec]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, ecx
mov dword [esp], edi
mov dword [esp + 4], ebp
jmp 0x6d16bb53
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x38], edi
je 0x6d16d0fc
cmp dword [esp + 0x4c], 0x70
je 0x6d16b1ea
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16b5a0
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x38], edi
je 0x6d16d5a7
mov eax, dword [esp + 0x36f8]
mov edi, dword [esp + 0x38]
mov dword [eax], edi
jmp 0x6d16b5a0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x68], eax
jmp 0x6d16b1a5
bsr eax, esi
mov dword [esp + 0x4c], esi
mov esi, edi
xor eax, 0x1f
mov byte [esp + 0x68], 1
cdq
mov dword [esp + 0x38], eax
sub dword [esp + 0x58], eax
mov eax, 0x20
sbb dword [esp + 0x5c], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x70], 0
sub eax, edx
mov dword [esp + 0x38], eax
jmp 0x6d16c9a5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ebx, 0xffffffff
mov ecx, 0xffffffff
mov edi, dword [esp + 0x90]
mov dword [eax], 0x22
mov edx, 0xffffffff
mov eax, 0xfffeffff
test edi, edi
jne 0x6d16d1a6
mov eax, 0x7ffeffff
lea esi, [esp + 0xc0]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 0x7ffeffff
mov dword [esp + 0x10], ebx
mov dword [esp], esi
call sub.libgcc_s_dw2_1.dll___multf3
mov edx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
jmp 0x6d16b353
mov ebx, dword [esp + 0x58]
sub ebx, ebp
mov eax, ebx
shl eax, 5
test edi, edi
jle 0x6d16d69c
add eax, edi
mov dword [esp + 0x38], eax
cmp eax, 0x71
jg 0x6d16d828
mov edx, dword [esp + 0x60]
lea eax, [ebx*4]
sub edx, eax
mov eax, 3
mov dword [esp + 0x74], edx
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x60]
mov edi, dword [edi + eax*4]
mov dword [edx + eax*4], edi
sub eax, 1
cmp ebx, eax
jle 0x6d16d23e
cmp ebx, 3
lea eax, [ebx - 1]
mov edx, 2
cmovg eax, edx
xor edi, edi
lea eax, [eax*4 + 4]
mov dword [esp + eax + 0xe8], 0
sub eax, 1
cmp eax, 4
jb 0x6d16d848
and eax, 0xfffffffc
mov edx, eax
lea eax, [eax - 1]
shr eax, 2
and eax, 1
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
mov dword [eax], 0
mov eax, 4
cmp eax, edx
jae 0x6d16d848
cmp dword [esp + 0x74], 0
je 0x6d16d2c9
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0
mov eax, 8
cmp eax, edx
jae 0x6d16d848
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x60]
mov dword [edx + eax], edi
mov dword [edx + eax + 4], edi
mov edx, dword [esp + 0x74]
add eax, 8
cmp eax, edx
jb 0x6d16d2cd
jmp 0x6d16d848
mov eax, dword [esp + 0x58]
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
jmp 0x6d16b958
mov eax, dword [esp + 0x8c]
cmp eax, 0xffffffff
je 0x6d16d7fb
xor edx, edx
shld edx, eax, 2
shl eax, 2
add eax, 0x4003
adc edx, 0
mov edi, eax
mov dword [esp + 0x98], eax
mov eax, 0xcccccccd
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x9c]
add edi, edx
adc edi, 0
mul edi
mov ebx, edx
and edx, 0xfffffffc
shr ebx, 2
mov eax, edx
mov edx, dword [esp + 0x9c]
add eax, ebx
sub edi, eax
mov eax, dword [esp + 0x98]
mov ebx, edi
jmp 0x6d16bc0b
cmp esi, ecx
jae 0x6d16d735
test edi, edi
jle 0x6d16d851
cmp edi, 0x51
jg 0x6d16d9f8
mov eax, dword [esp + 0xf4]
mov ebx, esi
mov dword [esp + 0x4c], 0
add edi, 0x20
xor esi, esi
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x74], eax
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xec], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0xf0], eax
jmp 0x6d16ba1e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
xor edi, edi
xor edx, edx
xor ecx, ecx
mov dword [eax], 0x22
mov eax, dword [esp + 0x90]
test eax, eax
je 0x6d16d72e
mov eax, 0x80000000
jmp 0x6d16b353
mov edi, dword [esp + 0x60]
mov ecx, 8
mov dword [edi + 4], 0
cmp ecx, eax
jb 0x6d16c515
jmp 0x6d16c85b
lea eax, [edi - 0x71]
mov ebx, eax
sar ebx, 5
and eax, 0x1f
mov esi, eax
je 0x6d16d7a1
lea eax, [eax - 1]
mov ebp, dword [esp + ebx*4 + 0xfc]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x40], ebx
jle 0x6d16d551
lea edx, [ebx*4]
lea ecx, [esp + 0xec]
mov eax, 0x20
mov dword [esp + 0x74], ebx
mov dword [esp + 0x60], ecx
sub ecx, edx
sub eax, esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + edx + 0xfc]
mov edx, ebx
mov ecx, esi
add edx, 1
shr eax, cl
movzx ecx, byte [esp + 0x50]
mov ebx, eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + edx*4]
mov edi, eax
shl edi, cl
mov ecx, edi
mov edi, dword [esp + 0x68]
or ecx, ebx
mov dword [edi + edx*4 - 4], ecx
cmp dword [esp + 0x40], edx
jg 0x6d16d48f
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x80]
sub edx, ebx
cmp edx, 3
jle 0x6d16d55e
mov eax, ebx
mov esi, dword [esp + 0xfc]
test esi, esi
jne 0x6d16d4fe
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x70]
lea esi, [esi]
add edx, 1
mov ebx, dword [ecx + edx*4]
test ebx, ebx
je 0x6d16d4f0
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc], ebp
cmp dword [esp + 0x78], edx
setb dl
cmp eax, esi
setg al
or eax, edx
mov edx, dword [esp + 0x60]
movzx eax, al
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
lea eax, [edi - 1]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov eax, ecx
jmp 0x6d16bb53
lea ecx, [esp + 0xec]
mov eax, ebp
mov dword [esp + 0x60], ecx
mov ecx, esi
shr eax, cl
mov dword [esp + 0xf8], eax
jmp 0x6d16d4d4
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16b5a0
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x68]
cmp eax, edi
cmove eax, dword [esp + 0x36f4]
mov dword [esp + 0x38], eax
jmp 0x6d16d119
mov eax, dword [esp + 0x36f8]
test eax, eax
je 0x6d16b5a0
sub dword [esp + 0x38], 1
jmp 0x6d16d119
mov dword [esp + 0x78], 0x1ed
xor ebx, ebx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x98], 0x1345
mov dword [esp + 0x9c], 0
jmp 0x6d16beb8
add ecx, 5
jmp 0x6d16bddf
sub edi, 1
lea ecx, [esp + 0xec]
mov edx, edi
mov dword [esp + 0x60], ecx
sar edx, 0x1f
shr edx, 0x1b
lea eax, [edi + edx]
and eax, 0x1f
sub eax, edx
mov edx, 4
sub edx, esi
lea ebx, [edx*4]
mov ebp, edx
add ecx, ebx
cmp eax, 0x10
je 0x6d16d8ee
cmp eax, 0xf
jg 0x6d16d89b
mov edx, 0x10
mov dword [esp + 8], esi
sub edx, eax
mov eax, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call sym.libquadmath_0.dll___quadmath_mpn_lshift
test ebp, ebp
je 0x6d16d663
mov eax, dword [esp + 0x60]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov ecx, dword [esp + 0x90]
mov dword [esp], edi
sar edi, 0x1f
lea eax, [esp + 0xc0]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
jmp 0x6d16bb4f
cdq
sub dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
sbb dword [esp + 0x54], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov eax, dword [esp + 0x70]
lea eax, [eax + ebp*4]
test ebp, ebp
jle 0x6d16d6dd
mov ebp, dword [esp + 0x70]
lea esi, [esi]
mov edx, dword [eax - 4]
mov dword [eax + ebx*4], edx
sub eax, 4
cmp eax, ebp
jne 0x6d16d6d0
lea eax, [ebx*4 + 4]
mov dword [esp + 4], 0
xor ebx, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x38], ecx
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [esp + 0x58]
cmp edi, 0x71
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x1be0], 0
jg 0x6d16c8c0
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + eax*4 + 0xfc]
jmp 0x6d16c68c
xor eax, eax
jmp 0x6d16b353
mov eax, dword [esp + 0xf4]
xor ebx, ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x4c], eax
jmp 0x6d16ba1e
lea eax, [esp + 0xfc]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
add eax, 4
mov dword [esp], eax
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtoull
mov ecx, edx
cmp edi, dword [esp + 0xfc]
je 0x6d16d916
xor edx, edx
xor edi, edi
xor ecx, ecx
mov eax, 0x7fff8000
lea ebp, [ebx + 2]
jmp 0x6d16c486
mov edx, dword [esp + ebx*4 + 0xfc]
lea eax, [ebx - 1]
lea ecx, [esp + 0xec]
mov dword [esp + 0x38], 0x1f
mov dword [esp + 0x60], ecx
mov ebp, dword [esp + eax*4 + 0xfc]
mov dword [esp + 0xec], edx
mov edx, dword [esp + ebx*4 + 0x100]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + ebx*4 + 0x104]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + ebx*4 + 0x108]
mov dword [esp + 0xf8], edx
jmp 0x6d16d4d6
mov dword [esp + 0x78], 0x666
xor ebx, ebx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x98], 0x4003
mov dword [esp + 0x9c], 0
jmp 0x6d16beb8
mov eax, 0x71
sub eax, edi
mov dword [esp + 0x40], eax
cmp eax, 0x1f
jg 0x6d16d934
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x6d16da24
mov edi, dword [esp + 0x38]
jmp 0x6d16d6bb
add dword [esp + 0x50], 0xffffffe0
mov eax, dword [esp + 0x50]
mov ebx, esi
adc dword [esp + 0x54], 0xffffffff
mov edx, dword [esp + 0x54]
xor esi, esi
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xe4], edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x4c], eax
jmp 0x6d16ba1e
sub eax, 0x10
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.libquadmath_0.dll___quadmath_mpn_rshift
mov edx, eax
mov eax, 3
sub eax, esi
mov dword [esp + eax*4 + 0xec], edx
test eax, eax
jle 0x6d16d663
shl eax, 2
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
jmp 0x6d16d663
lea eax, [esi*4]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
test ebp, ebp
jne 0x6d16d64b
jmp 0x6d16d663
mov dword [esp + 0x1be0], eax
mov edx, eax
mov edi, ecx
mov eax, 0x7fff8000
mov dword [esp + 0x1be4], ecx
xor ecx, ecx
jmp 0x6d16d799
mov edi, eax
lea eax, [eax + 0x1f]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x60]
test edi, edi
cmovns eax, edi
mov dword [esp + 4], ecx
sar eax, 5
mov edx, eax
mov eax, edi
neg edx
and eax, 0x1f
mov dword [esp + 0xc], eax
lea eax, [edx + 4]
mov dword [esp + 8], eax
lea eax, [edx*4]
mov edx, ecx
sub edx, eax
mov edi, eax
mov dword [esp], edx
neg edi
call sym.libquadmath_0.dll___quadmath_mpn_lshift
lea eax, [edi - 1]
mov dword [esp + edi + 0xe8], 0
mov ecx, dword [esp + 0x74]
cmp eax, 4
jb 0x6d16d848
and eax, 0xfffffffc
mov edx, eax
lea eax, [eax - 1]
shr eax, 2
and eax, 1
mov edi, eax
mov eax, dword [esp + 0x60]
mov dword [eax], 0
mov eax, 4
cmp eax, edx
jae 0x6d16d848
test edi, edi
je 0x6d16d9d4
mov eax, dword [esp + 0x60]
xor edi, edi
mov dword [eax + 4], edi
mov eax, 8
cmp eax, edx
jae 0x6d16d848
mov edi, dword [esp + 0x60]
mov dword [edi + eax], 0
mov dword [edi + eax + 4], 0
add eax, 8
cmp eax, edx
jb 0x6d16d9d8
jmp 0x6d16d848
mov eax, 0x71
sub eax, edi
mov ebp, eax
jne 0x6d16da51
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, esi
mov dword [esp + 0x40], 0
xor esi, esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
jmp 0x6d16bb00
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 4
mov dword [esp + 0x74], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_lshift
mov ecx, dword [esp + 0x74]
jmp 0x6d16d848
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
xor esi, esi
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], eax
call sym.libquadmath_0.dll___quadmath_mpn_lshift
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
jmp 0x6d16bb00
mov ecx, dword [esp + 0x68]
jmp 0x6d16d035