Function at 0x100b78e0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x30
push esi
mov esi, dword [ebx + 8]
push edi
mov edi, ecx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edi
movzx eax, byte [esi]
cmp eax, 9
ja case.default.0x100b7912
jmp dword [eax*4 + 0x100b85b8]
mov edx, dword [esi + 8]
mov ecx, dword [edi]
mov eax, dword [edx]
cmp eax, dword [edx + 4]
mov eax, dword [ecx]
jne 0x100b793c
push 2
push 0x1017f0c8
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
cmp byte [ebx + 0xc], 0
je 0x100b7b47
push 2
push 0x1017f0cc
call dword [eax + 4]
mov eax, dword [ebx + 0x14]
add eax, dword [ebx + 0x18]
mov edx, dword [edi + 0x260]
cmp edx, eax
jae 0x100b7992
lea eax, [edx + edx]
lea ecx, [edi + 0x250]
lea edx, [ecx + 0x10]
mov dword [ebp - 4], edx
mov edx, dword [edx]
cmp eax, edx
ja 0x100b7988
cmp dword [ecx + 0x14], 0x10
jb 0x100b797d
mov ecx, dword [ecx]
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov byte [ecx + eax], 0
jmp 0x100b7992
push 0x20
sub eax, edx
push eax
call fcn.1000da60
mov eax, dword [esi + 8]
xor ecx, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
je 0x100b7a62
lea ecx, [edi + 0x250]
cmp dword [ecx + 0x14], 0x10
mov edx, dword [edi]
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
jb 0x100b79d6
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x14]
add ecx, dword [ebx + 0x18]
push ecx
push eax
mov ecx, edx
call dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
push 0x22
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax]
push 0
push esi
mov ecx, edi
call fcn.100b8680
mov ecx, dword [edi]
push 3
push 0x1017f0c0
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
add eax, ecx
push eax
push ecx
push 0
push 1
lea eax, [esi + 0x18]
mov ecx, edi
push eax
call fcn.100b78e0
mov ecx, dword [edi]
push 2
push 0x1017f0c4
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xc]
add esi, 0x28
inc dword [ebp - 8]
mov eax, dword [eax + 8]
mov dword [ebp - 4], eax
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0x66666667
imul ecx
lea ecx, [edi + 0x250]
sar edx, 4
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
cmp dword [ebp - 8], eax
jb 0x100b79c2
mov ecx, dword [ebp - 4]
cmp esi, dword [ecx + 4]
jne 0x100b7a87
push 0x3cd5
push 0x1017b820
push str.i___val.m_value.object__cend__
call fcn.100e369b
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov ecx, dword [eax + 8]
lea eax, [esi + 0x28]
cmp eax, dword [ecx + 4]
je 0x100b7aa6
push 0x3cd6
push 0x1017b820
push str.std::next_i___val.m_value.object__cend__
call fcn.100e369b
add esp, 0xc
cmp dword [edi + 0x264], 0x10
lea edx, [edi + 0x250]
mov eax, dword [edi]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
jb 0x100b7ac5
mov edx, dword [edi + 0x250]
mov eax, dword [ebx + 0x14]
add eax, dword [ebx + 0x18]
mov edi, dword [ebp - 0x10]
push eax
push edx
mov ecx, dword [edi]
call dword [ebp - 4]
mov ecx, dword [edi]
push 0x22
mov eax, dword [ecx]
call dword [eax]
push 0
push esi
mov ecx, edi
call fcn.100b8680
mov ecx, dword [edi]
push 3
push 0x1017f0c0
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x14]
add esi, 0x18
mov eax, dword [ebx + 0x18]
add eax, ecx
push eax
push ecx
push 0
push 1
push esi
mov ecx, edi
call fcn.100b78e0
mov ecx, dword [edi]
push 0xa
mov eax, dword [ecx]
call dword [eax]
cmp dword [edi + 0x264], 0x10
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
lea eax, [edi + 0x250]
jb 0x100b7b2e
mov eax, dword [eax]
push dword [ebx + 0x18]
push eax
call edx
mov ecx, dword [edi]
push 0x7d
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
push 0x7b
call dword [eax]
mov eax, dword [esi + 8]
xor ecx, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
je 0x100b7bd9
mov ecx, dword [edi]
push 0x22
mov eax, dword [ecx]
call dword [eax]
push 0
push esi
mov ecx, edi
call fcn.100b8680
mov ecx, dword [edi]
push 2
push 0x1017f11c
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0x18]
lea eax, [esi + 0x18]
mov ecx, edi
push dword [ebx + 0x14]
push 0
push 0
push eax
call fcn.100b78e0
mov ecx, dword [edi]
push 0x2c
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0xc]
add esi, 0x28
inc dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 4], eax
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
cmp dword [ebp - 0x10], eax
jb 0x100b7b71
mov ecx, dword [ebp - 4]
cmp esi, dword [ecx + 4]
jne 0x100b7bfe
push 0x3cf1
push 0x1017b820
push str.i___val.m_value.object__cend__
call fcn.100e369b
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov ecx, dword [eax + 8]
lea eax, [esi + 0x28]
cmp eax, dword [ecx + 4]
je 0x100b7c1d
push 0x3cf2
push 0x1017b820
push str.std::next_i___val.m_value.object__cend__
call fcn.100e369b
add esp, 0xc
mov ecx, dword [edi]
push 0x22
mov eax, dword [ecx]
call dword [eax]
push 0
push esi
mov ecx, edi
call fcn.100b8680
mov ecx, dword [edi]
push 2
push 0x1017f11c
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0x18]
add esi, 0x18
mov ecx, edi
push dword [ebx + 0x14]
push 0
push 0
push esi
call fcn.100b78e0
mov ecx, dword [edi]
push 0x7d
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov edx, dword [esi + 8]
mov ecx, dword [edi]
mov eax, dword [edx]
cmp eax, dword [edx + 4]
mov eax, dword [ecx]
jne 0x100b7c88
push 2
push 0x1017f120
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
cmp byte [ebx + 0xc], 0
je 0x100b7e04
push 2
push 0x1017f0e0
call dword [eax + 4]
mov eax, dword [ebx + 0x14]
add eax, dword [ebx + 0x18]
mov edx, dword [edi + 0x260]
cmp edx, eax
jae 0x100b7cde
lea eax, [edx + edx]
lea ecx, [edi + 0x250]
lea edx, [ecx + 0x10]
mov dword [ebp - 4], edx
mov edx, dword [edx]
cmp eax, edx
ja 0x100b7cd4
cmp dword [ecx + 0x14], 0x10
jb 0x100b7cc9
mov ecx, dword [ecx]
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov byte [ecx + eax], 0
jmp 0x100b7cde
push 0x20
sub eax, edx
push eax
call fcn.1000da60
mov edx, dword [esi + 8]
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 0x10
mov dword [ebp - 8], ecx
cmp ecx, eax
je 0x100b7d61
lea ecx, [edi + 0x250]
cmp dword [ecx + 0x14], 0x10
mov edx, dword [edi]
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
mov eax, ecx
jb 0x100b7d0a
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x14]
add ecx, dword [ebx + 0x18]
push ecx
push eax
mov ecx, edx
call dword [ebp - 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
mov edi, dword [ebp - 0x10]
add eax, ecx
push eax
push ecx
push 0
push 1
push dword [ebp - 8]
mov ecx, edi
call fcn.100b78e0
mov ecx, dword [edi]
push 2
push 0x1017f0c4
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
add ecx, 0x10
mov dword [ebp - 8], ecx
mov edx, dword [esi + 8]
mov eax, dword [edx + 4]
sub eax, 0x10
cmp ecx, eax
lea ecx, [edi + 0x250]
jne 0x100b7cf6
mov ecx, dword [edx]
cmp ecx, dword [edx + 4]
jne 0x100b7d7d
push 0x3d1b
push 0x1017b820
push str._val.m_value.array__empty__
call fcn.100e369b
add esp, 0xc
cmp dword [edi + 0x264], 0x10
lea edx, [edi + 0x250]
mov eax, dword [edi]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
jb 0x100b7d9c
mov edx, dword [edi + 0x250]
mov eax, dword [ebx + 0x14]
add eax, dword [ebx + 0x18]
mov ecx, dword [edi]
push eax
push edx
call dword [ebp - 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
mov esi, dword [ebp - 0xc]
add eax, ecx
push eax
push ecx
push 0
mov eax, dword [esi + 8]
mov ecx, edi
push 1
mov eax, dword [eax + 4]
sub eax, 0x10
push eax
call fcn.100b78e0
mov ecx, dword [edi]
push 0xa
mov eax, dword [ecx]
call dword [eax]
cmp dword [edi + 0x264], 0x10
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
lea eax, [edi + 0x250]
jb 0x100b7deb
mov eax, dword [eax]
push dword [ebx + 0x18]
push eax
call edx
mov ecx, dword [edi]
push 0x5d
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
push 0x5b
call dword [eax]
mov edx, dword [esi + 8]
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 0x10
mov dword [ebp - 4], ecx
cmp ecx, eax
je 0x100b7e52
nop word [eax + eax]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push 0
push 0
push ecx
mov ecx, edi
call fcn.100b78e0
mov ecx, dword [edi]
push 0x2c
mov eax, dword [ecx]
call dword [eax]
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 4]
add ecx, 0x10
mov dword [ebp - 4], ecx
mov eax, dword [edx + 4]
sub eax, 0x10
cmp ecx, eax
jne 0x100b7e20
mov ecx, dword [edx]
cmp ecx, dword [edx + 4]
jne 0x100b7e71
push 0x3d30
push 0x1017b820
push str._val.m_value.array__empty__
call fcn.100e369b
mov edx, dword [esi + 8]
add esp, 0xc
push dword [ebx + 0x18]
mov eax, dword [edx + 4]
mov ecx, edi
push dword [ebx + 0x14]
sub eax, 0x10
push 0
push 0
push eax
call fcn.100b78e0
mov ecx, dword [edi]
push 0x5d
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov ecx, dword [edi]
push 0x22
mov eax, dword [ecx]
call dword [eax]
push 0
push dword [esi + 8]
mov ecx, edi
call fcn.100b8680
mov ecx, dword [edi]
push 0x22
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
cmp byte [ebx + 0xc], 0
mov ecx, dword [edi]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
je 0x100b8029
push 2
push 0x1017f0cc
call eax
mov ecx, dword [ebx + 0x18]
add ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x260]
mov dword [ebp - 0x10], ecx
cmp eax, ecx
jae 0x100b7f1d
lea ecx, [edi + 0x250]
add eax, eax
cmp eax, dword [ecx + 0x10]
lea edx, [ecx + 0x10]
ja 0x100b7f10
cmp dword [ecx + 0x14], 0x10
jb 0x100b7f08
mov ecx, dword [ecx]
mov dword [edx], eax
mov byte [eax + ecx], 0
jmp 0x100b7f1a
sub eax, dword [edx]
push 0x20
push eax
call fcn.1000da60
mov ecx, dword [ebp - 0x10]
cmp dword [edi + 0x264], 0x10
lea edx, [edi + 0x250]
mov eax, dword [edi]
mov eax, dword [eax]
mov eax, dword [eax + 4]
jb 0x100b7f39
mov edx, dword [edi + 0x250]
push ecx
mov ecx, dword [edi]
push edx
call eax
mov ecx, dword [edi]
push 0xa
push str._bytes_:__
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x100b7f97
dec eax
cmp esi, eax
je 0x100b7f88
nop
movzx eax, byte [esi]
mov ecx, edi
push eax
call fcn.100b9340
mov ecx, dword [edi]
push 2
push 0x1017f0dc
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xc]
inc esi
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 4]
dec eax
cmp esi, eax
jne 0x100b7f60
mov eax, dword [ecx + 4]
mov ecx, edi
movzx eax, byte [eax - 1]
push eax
call fcn.100b9340
mov ecx, dword [edi]
push 3
push 0x1017f1fc
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [edi + 0x264], 0x10
lea esi, [edi + 0x250]
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
mov eax, esi
jb 0x100b7fbf
mov eax, dword [esi]
push dword [ebp - 0x10]
push eax
call edx
mov ecx, dword [edi]
push 0xb
push str._subtype_:
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
je 0x100b7fed
movzx eax, byte [eax + 0xc]
mov ecx, edi
push eax
call fcn.100b9340
jmp 0x100b7ffb
mov ecx, dword [edi]
push 4
push 0x1017b908
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi]
push 0xa
mov eax, dword [ecx]
call dword [eax]
cmp dword [esi + 0x14], 0x10
mov ecx, dword [edi]
mov eax, dword [ecx]
jb 0x100b800f
mov esi, dword [esi]
push dword [ebx + 0x18]
push esi
call dword [eax + 4]
mov ecx, dword [edi]
push 0x7d
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
push 0xa
push str._bytes_:_
call eax
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x100b8074
dec eax
cmp esi, eax
je 0x100b8065
movzx eax, byte [esi]
mov ecx, edi
push eax
call fcn.100b9340
mov ecx, dword [edi]
push 0x2c
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0xc]
inc esi
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 4]
dec eax
cmp esi, eax
jne 0x100b8043
mov eax, dword [ecx + 4]
mov ecx, edi
movzx eax, byte [eax - 1]
push eax
call fcn.100b9340
mov ecx, dword [edi]
push 0xc
push str.___subtype_:
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
je 0x100b80ad
movzx eax, byte [eax + 0xc]
mov ecx, edi
push eax
call fcn.100b9340
mov ecx, dword [edi]
push 0x7d
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov ecx, dword [edi]
push 5
push str.null
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
cmp byte [esi + 8], 0
mov ecx, dword [edi]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
je 0x100b80e7
push 4
push 0x1011f3a0
call eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
push 5
push 0x1011f398
call eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov ecx, dword [esi + 8]
mov eax, ecx
mov esi, dword [esi + 0xc]
or eax, esi
mov dword [ebp - 0xc], ecx
jne 0x100b811d
mov ecx, dword [edi]
push 0x30
mov eax, dword [ecx]
call dword [eax]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
lea eax, [edi + 8]
mov dword [ebp - 0x14], eax
test esi, esi
jg 0x100b8144
jl 0x100b812d
test ecx, ecx
jae 0x100b8144
neg ecx
mov byte [eax], 0x2d
mov dword [ebp - 0xc], ecx
adc esi, 0
neg esi
push esi
push ecx
call fcn.100b9d40
inc eax
jmp 0x100b814b
push esi
push ecx
call fcn.100b9d40
mov dword [ebp - 4], eax
cmp eax, 0x3f
jb 0x100b816d
push 0x3f21
push 0x1017b820
push str.n_chars___number_buffer.size_____1
call fcn.100e369b
mov eax, dword [ebp - 4]
add esp, 0xc
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add edx, eax
mov dword [ebp - 0x14], edx
test esi, esi
jne 0x100b8185
cmp ecx, 0x64
jb 0x100b824f
mov eax, ecx
mov dword [ebp - 8], esi
mov edx, 0xe147ae15
mov edi, 0x47ae147a
mul edx
mov dword [ebp - 0x20], eax
mov esi, edx
mov eax, ecx
mov ecx, 0xe147ae15
mul edi
mov edi, eax
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 8]
mul ecx
mov ecx, eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 8]
mov edx, 0x47ae147a
mul edx
add ecx, esi
mov dword [ebp - 0x28], eax
mov esi, eax
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x2c]
adc edx, 0
add edi, ecx
mov ecx, dword [ebp - 0x24]
adc ecx, 0
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0xc]
xor eax, eax
add edx, ecx
mov ecx, edi
adc eax, eax
add esi, edx
mov edx, dword [ebp - 0x1c]
adc edx, eax
mov eax, dword [ebp - 8]
sub ecx, esi
sbb eax, edx
shrd ecx, eax, 1
shr eax, 1
add ecx, esi
adc eax, edx
shrd ecx, eax, 6
shr eax, 6
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
imul eax, ecx, 0x64
sub edi, eax
mov edx, edi
mov edi, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edi
lea edi, [ecx - 2]
mov dword [ebp - 0x14], edi
mov al, byte [edx*2 + 0x1017b059]
mov byte [ecx - 1], al
mov al, byte [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899iostream_stream_error]
mov ecx, dword [ebp - 0xc]
mov byte [edi], al
test esi, esi
ja 0x100b8185
jb 0x100b8246
cmp ecx, 0x64
jae 0x100b8185
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
test esi, esi
jne 0x100b8277
cmp ecx, 0xa
jae 0x100b8277
push dword [ebp - 4]
add cl, 0x30
mov byte [edx - 1], cl
lea edx, [edi + 8]
mov ecx, dword [edi]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov al, byte [ecx*2 + 0x1017b059]
mov byte [edx - 1], al
mov al, byte [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899iostream_stream_error]
push dword [ebp - 4]
mov byte [edx - 2], al
lea edx, [edi + 8]
mov ecx, dword [edi]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov ecx, dword [esi + 8]
mov eax, ecx
mov esi, dword [esi + 0xc]
or eax, esi
mov dword [ebp - 0xc], ecx
je 0x100b810a
push esi
push ecx
call fcn.100b9d40
mov dword [ebp - 4], eax
cmp eax, 0x3f
jb 0x100b82e0
push 0x3f21
push 0x1017b820
push str.n_chars___number_buffer.size_____1
call fcn.100e369b
mov eax, dword [ebp - 4]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
lea edx, [edi + 8]
add edx, eax
mov dword [ebp - 0x14], edx
test esi, esi
jne 0x100b8300
cmp ecx, 0x64
jb 0x100b83ca
nop dword [eax + eax]
mov eax, ecx
mov dword [ebp - 8], esi
mov edx, 0xe147ae15
mov edi, 0x47ae147a
mul edx
mov dword [ebp - 0x20], eax
mov esi, edx
mov eax, ecx
mov ecx, 0xe147ae15
mul edi
mov edi, eax
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 8]
mul ecx
mov ecx, eax
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 8]
mov edx, 0x47ae147a
mul edx
add ecx, esi
mov dword [ebp - 0x24], eax
mov esi, eax
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x1c]
adc edx, 0
add edi, ecx
mov ecx, dword [ebp - 0x28]
adc ecx, 0
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 0xc]
xor eax, eax
add edx, ecx
mov ecx, edi
adc eax, eax
add esi, edx
mov edx, dword [ebp - 0x2c]
adc edx, eax
mov eax, dword [ebp - 8]
sub ecx, esi
sbb eax, edx
shrd ecx, eax, 1
shr eax, 1
add ecx, esi
adc eax, edx
shrd ecx, eax, 6
shr eax, 6
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
imul eax, ecx, 0x64
sub edi, eax
mov edx, edi
mov edi, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edi
lea edi, [ecx - 2]
mov dword [ebp - 0x14], edi
mov al, byte [edx*2 + 0x1017b059]
mov byte [ecx - 1], al
mov al, byte [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899iostream_stream_error]
mov ecx, dword [ebp - 0xc]
mov byte [edi], al
test esi, esi
ja 0x100b8300
jb 0x100b83c1
cmp ecx, 0x64
jae 0x100b8300
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
test esi, esi
jne 0x100b83d7
cmp ecx, 0xa
jb 0x100b8258
mov al, byte [ecx*2 + 0x1017b059]
mov byte [edx - 1], al
mov al, byte [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899iostream_stream_error]
jmp 0x100b8288
movsd xmm0, qword [esi + 8]
movsd qword [ebp - 0x20], xmm0
call fcn.10017f90
test al, al
je case.0x100b7912.0
movsd xmm0, qword [ebp - 0x20]
lea eax, [edi + 0x48]
sub esp, 8
mov dword [ebp - 4], eax
lea esi, [edi + 8]
movsd qword [esp], xmm0
call fcn.100e2f4a
movsd xmm0, qword [ebp - 0x20]
add esp, 8
test eax, eax
je 0x100b843e
xorps xmm0, xmmword [0x10180f80]
lea esi, [edi + 9]
movsd qword [ebp - 0x20], xmm0
mov byte [edi + 8], 0x2d
ucomisd xmm0, qword [0x10180698]
lahf
test ah, 0x44
jp 0x100b8471
mov word [esi], 0x2e30
lea eax, [edi + 8]
mov byte [esi + 2], 0x30
add esi, 3
mov ecx, dword [edi]
sub esi, eax
push esi
push eax
mov edx, dword [ecx]
call dword [edx + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov eax, dword [ebp - 4]
sub eax, esi
mov dword [ebp - 4], eax
cmp eax, 0x11
jge 0x100b849a
push 0x3c3c
push 0x1015c410
push str.last___first___std::numeric_limits_FloatType_::max_digits10
call fcn.100e369b
movsd xmm0, qword [ebp - 0x20]
add esp, 0xc
lea eax, [ebp - 8]
mov dword [ebp - 0x10], 0
push eax
movaps xmm3, xmm0
mov dword [ebp - 8], 0
lea edx, [ebp - 0x10]
mov ecx, esi
call fcn.100bc660
add esp, 4
cmp dword [ebp - 0x10], 0x11
jle 0x100b84d9
push 0x3c46
push 0x1015c468
push str.len___std::numeric_limits_FloatType_::max_digits10
call fcn.100e369b
add esp, 0xc
mov eax, dword [ebp - 4]
cmp eax, 0x11
jge 0x100b84fa
push 0x3c4d
push 0x1015c758
push str.last___first___kMaxExp__2
call fcn.100e369b
add esp, 0xc
jmp 0x100b84ff
cmp eax, 0x16
jge 0x100b8518
push 0x3c4e
push 0x1015c818
push str.last___first___2____kMinExp___1___std::numeric_limits_FloatType_::max_digits10
call fcn.100e369b
add esp, 0xc
jmp 0x100b851d
cmp eax, 0x17
jge 0x100b8534
push 0x3c4f
push 0x1015c5d0
push str.last___first___std::numeric_limits_FloatType_::max_digits10__6
call fcn.100e369b
add esp, 0xc
mov edx, dword [ebp - 0x10]
sub esp, 8
mov ecx, esi
push dword [ebp - 8]
call fcn.100b2dd0
mov ecx, dword [edi]
add esp, 0xc
mov esi, eax
lea eax, [edi + 8]
sub esi, eax
mov edx, dword [ecx]
push esi
push eax
call dword [edx + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov ecx, dword [edi]
push 0xb
push str._discarded_
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
mov ecx, dword [edi]
push 4
push 0x1017b908
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
push 0x3db6
push 0x1017b820
push str.false
call fcn.100e369b
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14