Function at 0x40f5a0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x465f73
mov eax, dword fs:[0]
push eax
sub esp, 0x114
mov eax, dword [0x493014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], 3
lea ecx, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x18]
cmovae ecx, edi
push 1
push str._:_
push 0
mov edx, esi
call fcn.004568a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x410597
mov eax, dword [ebp + 0x1c]
lea edi, [ebp + 8]
cmp eax, 0x10
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f66c
push esi
push 0x2e
push edi
lea ebx, [esi + edi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f669
nop dword [eax + eax]
movzx ecx, byte [edx]
cmp cl, 0x2e
jne 0x40f63c
xor eax, eax
jmp 0x40f641
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f65e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x2e
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f630
jmp 0x40f669
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f6cc
push esi
push 0x2c
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f6c9
movzx ecx, byte [edx]
cmp cl, 0x2c
jne 0x40f69c
xor eax, eax
jmp 0x40f6a1
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f6be
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x2c
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f690
jmp 0x40f6c9
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f72c
push esi
push 0x40
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f729
movzx ecx, byte [edx]
cmp cl, 0x40
jne 0x40f6fc
xor eax, eax
jmp 0x40f701
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f71e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x40
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f6f0
jmp 0x40f729
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f78c
push esi
push 0x5b
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f789
movzx ecx, byte [edx]
cmp cl, 0x5b
jne 0x40f75c
xor eax, eax
jmp 0x40f761
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f77e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x5b
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f750
jmp 0x40f789
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f7ec
push esi
push 0x5d
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f7e9
movzx ecx, byte [edx]
cmp cl, 0x5d
jne 0x40f7bc
xor eax, eax
jmp 0x40f7c1
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f7de
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x5d
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f7b0
jmp 0x40f7e9
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f84c
push esi
push 0x23
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f849
movzx ecx, byte [edx]
cmp cl, 0x23
jne 0x40f81c
xor eax, eax
jmp 0x40f821
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f83e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x23
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f810
jmp 0x40f849
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f8ac
push esi
push 0x3c
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f8a9
movzx ecx, byte [edx]
cmp cl, 0x3c
jne 0x40f87c
xor eax, eax
jmp 0x40f881
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f89e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x3c
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f870
jmp 0x40f8a9
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f90c
push esi
push 0x3e
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f909
movzx ecx, byte [edx]
cmp cl, 0x3e
jne 0x40f8dc
xor eax, eax
jmp 0x40f8e1
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f8fe
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x3e
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f8d0
jmp 0x40f909
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f96c
push esi
push 0x3a
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f969
movzx ecx, byte [edx]
cmp cl, 0x3a
jne 0x40f93c
xor eax, eax
jmp 0x40f941
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f95e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x3a
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f930
jmp 0x40f969
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40f9cc
push esi
push 0x7b
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40f9c9
movzx ecx, byte [edx]
cmp cl, 0x7b
jne 0x40f99c
xor eax, eax
jmp 0x40f9a1
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f9be
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x7b
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f990
jmp 0x40f9c9
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fa2c
push esi
push 0x7d
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fa29
movzx ecx, byte [edx]
cmp cl, 0x7d
jne 0x40f9fc
xor eax, eax
jmp 0x40fa01
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fa1e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x7d
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40f9f0
jmp 0x40fa29
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fa8c
push esi
push 0x7c
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fa89
movzx ecx, byte [edx]
cmp cl, 0x7c
jne 0x40fa5c
xor eax, eax
jmp 0x40fa61
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fa7e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x7c
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fa50
jmp 0x40fa89
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40faec
push esi
push 0x2b
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fae9
movzx ecx, byte [edx]
cmp cl, 0x2b
jne 0x40fabc
xor eax, eax
jmp 0x40fac1
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fade
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x2b
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fab0
jmp 0x40fae9
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fb4c
push esi
push 0x5f
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fb49
movzx ecx, byte [edx]
cmp cl, 0x5f
jne 0x40fb1c
xor eax, eax
jmp 0x40fb21
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fb3e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x5f
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fb10
jmp 0x40fb49
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fbac
push esi
push 0x7e
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fba9
movzx ecx, byte [edx]
cmp cl, 0x7e
jne 0x40fb7c
xor eax, eax
jmp 0x40fb81
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fb9e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x7e
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fb70
jmp 0x40fba9
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fc0c
push esi
push 0x2d
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fc09
movzx ecx, byte [edx]
cmp cl, 0x2d
jne 0x40fbdc
xor eax, eax
jmp 0x40fbe1
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fbfe
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x2d
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fbd0
jmp 0x40fc09
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fc70
push esi
push 0x21
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fc6d
movzx ecx, byte [edx]
cmp cl, 0x21
jne 0x40fc40
xor eax, eax
jmp 0x40fc45
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fc62
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x21
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fc34
jmp 0x40fc6d
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fcd4
push esi
push 0x24
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fcd1
movzx ecx, byte [edx]
cmp cl, 0x24
jne 0x40fca4
xor eax, eax
jmp 0x40fca9
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fcc6
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x24
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fc98
jmp 0x40fcd1
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fd3c
push esi
push 0x25
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fd39
nop dword [eax]
movzx ecx, byte [edx]
cmp cl, 0x25
jne 0x40fd0c
xor eax, eax
jmp 0x40fd11
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fd2e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x25
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fd00
jmp 0x40fd39
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fda0
push esi
push 0x5e
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fd9d
movzx ecx, byte [edx]
cmp cl, 0x5e
jne 0x40fd70
xor eax, eax
jmp 0x40fd75
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fd92
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x5e
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fd64
jmp 0x40fd9d
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fe04
push esi
push 0x26
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fe01
movzx ecx, byte [edx]
cmp cl, 0x26
jne 0x40fdd4
xor eax, eax
jmp 0x40fdd9
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fdf6
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x26
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fdc8
jmp 0x40fe01
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fe6c
push esi
push 0x60
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fe69
nop dword [eax]
movzx ecx, byte [edx]
cmp cl, 0x60
jne 0x40fe3c
xor eax, eax
jmp 0x40fe41
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fe5e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x60
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fe30
jmp 0x40fe69
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40fed0
push esi
push 0x2a
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40fecd
movzx ecx, byte [edx]
cmp cl, 0x2a
jne 0x40fea0
xor eax, eax
jmp 0x40fea5
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fec2
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x2a
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fe94
jmp 0x40fecd
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40ff34
push esi
push 0x28
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40ff31
movzx ecx, byte [edx]
cmp cl, 0x28
jne 0x40ff04
xor eax, eax
jmp 0x40ff09
sbb eax, eax
or eax, 1
test eax, eax
je 0x40ff26
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x28
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40fef8
jmp 0x40ff31
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x40ff9c
push esi
push 0x29
push edi
lea ebx, [edi + esi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x40ff99
movzx ecx, byte [edx]
cmp cl, 0x29
jne 0x40ff6c
xor eax, eax
jmp 0x40ff71
sbb eax, eax
or eax, 1
test eax, eax
je 0x40ff8e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x29
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40ff60
jmp 0x40ff99
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x410004
push esi
push 0x3d
push edi
lea ebx, [esi + edi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x410001
movzx ecx, byte [edx]
cmp cl, 0x3d
jne 0x40ffd4
xor eax, eax
jmp 0x40ffd9
sbb eax, eax
or eax, 1
test eax, eax
je 0x40fff6
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x3d
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x40ffc8
jmp 0x410001
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x41006c
push esi
push 0x27
push edi
lea ebx, [esi + edi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x410069
movzx ecx, byte [edx]
cmp cl, 0x27
jne 0x41003c
xor eax, eax
jmp 0x410041
sbb eax, eax
or eax, 1
test eax, eax
je 0x41005e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x27
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x410030
jmp 0x410069
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x4100d4
push esi
push 0x3b
push edi
lea ebx, [esi + edi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4100d1
movzx ecx, byte [edx]
cmp cl, 0x3b
jne 0x4100a4
xor eax, eax
jmp 0x4100a9
sbb eax, eax
or eax, 1
test eax, eax
je 0x4100c6
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x3b
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x410098
jmp 0x4100d1
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
lea edi, [ebp + 8]
cmovae edi, dword [ebp + 8]
cmp esi, 1
jb 0x410139
push esi
push 0x2f
push edi
lea ebx, [esi + edi]
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x410139
movzx ecx, byte [edx]
cmp cl, 0x2f
jne 0x41010c
xor eax, eax
jmp 0x410111
sbb eax, eax
or eax, 1
test eax, eax
je 0x41012e
inc edx
mov eax, ebx
sub eax, edx
push eax
push 0x2f
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x410100
jmp 0x410139
sub edx, edi
cmp edx, 0xffffffff
jne 0x410594
cmp esi, 3
jae 0x41016c
lea ecx, [ebp + 8]
call fcn.0044f240
lea ecx, [ebp + 0x20]
call fcn.0044f240
lea ecx, [ebp + 0x38]
call fcn.0044f240
lea ecx, [ebp + 0x50]
call fcn.0044f240
mov eax, 0xfffffffe
jmp 0x4106b1
cmp esi, 0xf
jbe 0x41019f
lea ecx, [ebp + 8]
call fcn.0044f240
lea ecx, [ebp + 0x20]
call fcn.0044f240
lea ecx, [ebp + 0x38]
call fcn.0044f240
lea ecx, [ebp + 0x50]
call fcn.0044f240
mov eax, 0xfffffffd
jmp 0x4106b1
mov byte [ebp - 4], 4
mov ebx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
call ebx
cmp dword [ebp + 0x4c], 0x10
lea esi, [ebp + 0x38]
mov edi, eax
lea eax, [ebp - 0xe8]
cmovae esi, dword [ebp + 0x38]
push 0xa
push eax
push esi
mov dword [edi], 0
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
add esp, 0xc
cmp esi, dword [ebp - 0xe8]
jne 0x4101e4
push str.invalid_stoi_argument
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const__]
cmp dword [edi], 0x22
jne 0x410228
push str.stoi_argument_out_of_range
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__]
mov eax, 0x4101fe
ret
mov dword [ebp - 4], 3
mov byte [ebp - 4], 6
call ebx
cmp dword [ebp + 0x64], 0x10
lea esi, [ebp + 0x50]
mov edi, eax
lea eax, [ebp - 0xe8]
cmovae esi, dword [ebp + 0x50]
push 0xa
push eax
push esi
mov dword [edi], 0
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
add esp, 0xc
cmp esi, dword [ebp - 0xe8]
jne 0x41026e
push str.invalid_stoi_argument
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const__]
cmp dword [edi], 0x22
jne 0x4102b2
push str.stoi_argument_out_of_range
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__]
mov eax, 0x410288
ret
mov dword [ebp - 4], 3
cmp dword [ebp + 0x60], 4
jbe 0x4102ed
lea ecx, [ebp + 8]
call fcn.0044f240
lea ecx, [ebp + 0x20]
call fcn.0044f240
lea ecx, [ebp + 0x38]
call fcn.0044f240
lea ecx, [ebp + 0x50]
call fcn.0044f240
mov eax, 0xfffffff9
jmp 0x4106b1
cmp dword [ebp + 0x48], 4
jbe 0x410321
lea ecx, [ebp + 8]
call fcn.0044f240
lea ecx, [ebp + 0x20]
call fcn.0044f240
lea ecx, [ebp + 0x38]
call fcn.0044f240
lea ecx, [ebp + 0x50]
call fcn.0044f240
mov eax, 0xfffffff8
jmp 0x4106b1
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0044f450
lea ecx, [ebp - 0x2c]
call fcn.0040daf0
push 0xb8
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 8
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0x1c]
mov eax, accept
sub eax, ecx
add esp, 0x24
cmp eax, 7
jb 0x4106cd
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
push ecx
cmovae eax, dword [ebp - 0x2c]
push eax
push 7
push 0x46f04c
push ecx
push dword [ebp - 0xe8]
lea ecx, [ebp - 0x100]
call fcn.00459a90
push str..json
lea edx, [ebp - 0x100]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x118]
call fcn.00454c20
add esp, 4
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 0x10
jb 0x4103b3
mov eax, dword [eax]
push 1
push 0x40
push 1
push eax
lea ecx, [ebp - 0xe4]
call fcn.0044dd20
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xe4], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xe8], eax
lea ecx, [ebp - 0x118]
call fcn.0044f240
lea ecx, [ebp - 0x100]
call fcn.0044f240
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0x88], 0
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xe4], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xe8], eax
je 0x4104e5
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x88], 0
mov dword [ebp - 0xd4], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x41047e
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x98]
cmp dword [eax], ecx
jne 0x41047e
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x84]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0xb8]
mov dword [eax], ecx
mov eax, dword [ebp - 0xa8]
mov dword [eax], edx
cmp byte [ebp - 0x8c], 0
je 0x410492
lea ecx, [ebp - 0xd4]
call fcn.00450900
lea ecx, [ebp - 0xd4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xcc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x74]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x2c]
call fcn.0044f240
lea ecx, [ebp + 8]
call fcn.0044f240
lea ecx, [ebp + 0x20]
call fcn.0044f240
lea ecx, [ebp + 0x38]
call fcn.0044f240
lea ecx, [ebp + 0x50]
call fcn.0044f240
mov eax, 0xfffffffc
jmp 0x4106b1
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x88], 0
mov dword [ebp - 0xd4], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x41052d
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x98]
cmp dword [eax], ecx
jne 0x41052d
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x84]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0xb8]
mov dword [eax], ecx
mov eax, dword [ebp - 0xa8]
mov dword [eax], edx
cmp byte [ebp - 0x8c], 0
je 0x410541
lea ecx, [ebp - 0xd4]
call fcn.00450900
lea ecx, [ebp - 0xd4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xcc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x74]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x2c]
call fcn.0044f240
lea ecx, [ebp + 8]
call fcn.0044f240
lea ecx, [ebp + 0x20]
call fcn.0044f240
lea ecx, [ebp + 0x38]
call fcn.0044f240
lea ecx, [ebp + 0x50]
call fcn.0044f240
mov eax, 1
jmp 0x4106b1
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
jb 0x4105ce
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x4105c4
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41069e
push ecx
push edi
call fcn.0046470a
add esp, 8
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp ecx, 0x10
jb 0x410618
mov edx, dword [ebp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41060e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41069e
push ecx
push edx
call fcn.0046470a
add esp, 8
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0xf
mov byte [ebp + 0x20], 0
cmp ecx, 0x10
jb 0x410662
mov edx, dword [ebp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410658
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41069e
push ecx
push edx
call fcn.0046470a
add esp, 8
mov ecx, dword [ebp + 0x64]
mov dword [ebp + 0x48], 0
mov dword [ebp + 0x4c], 0xf
mov byte [ebp + 0x38], 0
cmp ecx, 0x10
jb 0x4106ae
mov edx, dword [ebp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4106a4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4106a4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0046470a
add esp, 8
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004646fc
mov esp, ebp
pop ebp
ret
call fcn.00409450
int3