Function at 0x4101f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x54]
cmp word [eax], 0
je 0x410a26
nop dword [eax + eax]
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
cmp eax, 0x20
je 0x41022a
cmp eax, 9
je 0x41022a
cmp eax, 0xa
je 0x41022a
cmp eax, 0xd
jne 0x410233
mov ecx, esi
call fcn.00410af0
jmp 0x410210
mov ecx, esi
call fcn.00410af0
movzx eax, ax
cmp eax, 0x3c
jne 0x4105f8
cmp dword [ebp + 8], 0
jne 0x4105ea
mov ecx, dword [esi + 0x54]
movzx eax, word [ecx]
cmp eax, 0x21
jne 0x410489
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x64], ecx
mov ecx, esi
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x70], eax
call fcn.00410af0
cmp ax, 0x21
jne 0x410317
mov ecx, esi
call fcn.00410af0
cmp ax, 0x2d
jne 0x410317
mov ecx, esi
call fcn.00410af0
cmp ax, 0x2d
jne 0x410317
mov ecx, esi
call fcn.00410af0
movzx eax, ax
cmp eax, 0x2d
jne 0x4102fe
mov eax, dword [esi + 0x54]
mov ecx, esi
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x70], eax
call fcn.00410af0
cmp ax, 0x2d
jne 0x4102e4
mov ecx, esi
call fcn.00410af0
cmp ax, 0x3e
je 0x410309
mov eax, dword [esi + 0x64]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x48], eax
jmp 0x4102a3
test ax, ax
je 0x410a42
jmp 0x4102a3
pop edi
pop esi
mov eax, 8
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0x64]
mov ecx, esi
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x48], eax
call fcn.00410af0
cmp ax, 0x21
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x5b
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x43
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x44
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x41
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x54
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x41
jne 0x410a5e
mov ecx, esi
call fcn.00410af0
cmp ax, 0x5b
jne 0x410a5e
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
call fcn.00404d10
mov ecx, esi
call fcn.00410af0
movzx eax, ax
mov dword [ebp + 0xc], eax
cmp eax, 0x5d
jne 0x41041f
mov eax, dword [esi + 0x54]
mov ecx, esi
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x70], eax
call fcn.00410af0
cmp ax, 0x5d
jne 0x410405
mov ecx, esi
call fcn.00410af0
cmp ax, 0x3e
je 0x41047b
mov eax, dword [esi + 0x64]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x48], eax
jmp 0x410428
test ax, ax
je 0x410a42
mov edx, dword [ebx]
mov eax, dword [edx - 0xc]
mov dword [ebp + 0x10], eax
lea edi, [eax + 1]
test edi, edi
js 0x410a1c
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or ecx, eax
jge 0x410456
push edi
mov ecx, ebx
call fcn.00404e50
mov edx, dword [ebx]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov word [edx + ecx*2], ax
mov eax, dword [ebx]
cmp edi, dword [eax - 8]
jg 0x410a1c
mov dword [eax - 0xc], edi
xor ecx, ecx
mov eax, dword [ebx]
mov word [eax + edi*2], cx
jmp 0x4103c1
pop edi
pop esi
mov eax, 9
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 0x3f
jne 0x4105ea
mov ecx, esi
call fcn.00410af0
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
call fcn.00404d10
mov ecx, dword [ebp + 0x10]
call fcn.00404d10
nop dword [eax + eax]
mov ecx, esi
call fcn.00410af0
movzx edi, ax
cmp edi, 0x20
je 0x410566
cmp edi, 9
je 0x410566
cmp edi, 0xa
je 0x410566
cmp edi, 0xd
je 0x410566
cmp edi, 0x3f
jne 0x410501
mov eax, dword [esi + 0x54]
cmp word [eax], 0x3e
jne 0x41050a
mov ecx, esi
call fcn.00410af0
pop edi
pop esi
mov eax, 0xa
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test di, di
je 0x410a7a
mov edx, dword [ebx]
mov eax, dword [edx - 0xc]
mov dword [ebp + 8], eax
lea ebx, [eax + 1]
test ebx, ebx
js 0x410a1c
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, ebx
or ecx, eax
jge 0x41053e
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.00404e50
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
jmp 0x410541
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov word [edx + ecx*2], di
mov ecx, dword [eax]
cmp ebx, dword [ecx - 8]
jg 0x410a1c
mov dword [ecx - 0xc], ebx
xor ecx, ecx
mov eax, dword [eax]
mov word [eax + ebx*2], cx
mov ebx, dword [ebp + 0xc]
jmp 0x4104b0
mov ebx, dword [ebp + 0x10]
nop dword [eax]
mov ecx, esi
call fcn.00410af0
movzx eax, ax
mov dword [ebp + 0xc], eax
cmp eax, 0x3f
jne 0x410591
mov eax, dword [esi + 0x54]
cmp word [eax], 0x3e
je 0x4104ec
jmp 0x41059a
test ax, ax
je 0x410a7a
mov edx, dword [ebx]
mov eax, dword [edx - 0xc]
mov dword [ebp + 0x10], eax
lea edi, [eax + 1]
test edi, edi
js 0x410a1c
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or ecx, eax
jge 0x4105c8
push edi
mov ecx, ebx
call fcn.00404e50
mov edx, dword [ebx]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov word [edx + ecx*2], ax
mov eax, dword [ebx]
cmp edi, dword [eax - 8]
jg 0x410a1c
mov dword [eax - 0xc], edi
xor ecx, ecx
mov eax, dword [ebx]
mov word [eax + edi*2], cx
jmp 0x410570
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 0x3e
jne 0x41060b
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test ax, ax
jne 0x41061e
pop edi
pop esi
mov eax, 0xb
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp + 8], 0
je 0x4108d0
cmp eax, 0x2f
jne 0x41063b
pop edi
pop esi
mov eax, 4
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 0x22
je 0x41077d
cmp eax, 0x27
je 0x41077d
cmp eax, 0x3d
jne 0x410660
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 0x20
je 0x410a96
cmp eax, 9
je 0x410a96
cmp eax, 0xa
je 0x410a96
cmp eax, 0xd
je 0x410a96
mov word [ebp - 4], ax
lea ecx, [ebp - 4]
xor eax, eax
lea edx, [ecx + 2]
mov word [ebp - 2], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410694
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 4]
sub ecx, edx
sar ecx, 1
push ecx
push eax
mov ecx, ebx
call fcn.00405050
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
test ax, ax
je 0x41076f
cmp ax, 0x3c
je 0x41076f
cmp ax, 0x3d
je 0x41076f
cmp ax, 0x3e
je 0x41076f
cmp ax, 0x2f
je 0x41076f
cmp ax, 0x20
je 0x41076f
cmp ax, 9
je 0x41076f
cmp ax, 0xa
je 0x41076f
cmp ax, 0xd
je 0x41076f
mov ecx, esi
call fcn.00410af0
mov edx, dword [ebx]
movzx eax, ax
mov dword [ebp + 0x10], eax
mov eax, dword [edx - 0xc]
mov dword [ebp + 0xc], eax
lea edi, [eax + 1]
test edi, edi
js 0x410a1c
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or ecx, eax
jge 0x410740
push edi
mov ecx, ebx
call fcn.00404e50
mov edx, dword [ebx]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov word [edx + eax*2], cx
mov eax, dword [ebx]
cmp edi, dword [eax - 8]
jg 0x410a1c
mov dword [eax - 0xc], edi
xor ecx, ecx
mov eax, dword [ebx]
mov word [eax + edi*2], cx
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
test ax, ax
jne 0x4106c1
pop edi
pop esi
mov eax, 5
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 0xc]
mov ebx, eax
mov ecx, edi
mov dword [ebp + 8], ebx
call fcn.00404d10
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
test ax, ax
je 0x410ab2
nop dword [eax + eax]
cmp ax, 0x3c
je 0x410ab2
mov ecx, esi
cmp ax, bx
je 0x41081e
call fcn.00410af0
mov edx, dword [edi]
movzx eax, ax
mov dword [ebp + 0x10], eax
mov eax, dword [edx - 0xc]
mov dword [ebp + 0xc], eax
lea ebx, [eax + 1]
test ebx, ebx
js 0x410a1c
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, ebx
or ecx, eax
jge 0x4107ea
push ebx
mov ecx, edi
call fcn.00404e50
mov edx, dword [edi]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov word [edx + eax*2], cx
mov eax, dword [edi]
cmp ebx, dword [eax - 8]
jg 0x410a1c
mov dword [eax - 0xc], ebx
xor ecx, ecx
mov eax, dword [edi]
mov word [eax + ebx*2], cx
mov eax, dword [esi + 0x54]
mov ebx, dword [ebp + 8]
movzx eax, word [eax]
test ax, ax
je 0x410ab2
jmp 0x4107a0
call fcn.00410af0
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
cmp eax, 0x20
je 0x410850
cmp eax, 9
je 0x410850
cmp eax, 0xa
je 0x410850
cmp eax, 0xd
je 0x410850
cmp eax, 0x3e
je 0x410850
cmp eax, 0x2f
je 0x410850
cmp eax, 0x3f
jne 0x410ace
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jle 0x4108c2
push 0x26
push eax
call fcn.005eda0d
add esp, 8
test eax, eax
je 0x4108c2
sub eax, dword [edi]
sar eax, 1
js 0x4108c2
push 0x65a304
push str.amp_
mov ecx, edi
call fcn.00403ae0
push 0x65a75c
push 0x65a760
mov ecx, edi
call fcn.00403ae0
push 0x65a76c
push 0x65a770
mov ecx, edi
call fcn.00403ae0
push 0x65a77c
push 0x65a780
mov ecx, edi
call fcn.00403ae0
push 0x65a790
push 0x65a794
mov ecx, edi
call fcn.00403ae0
pop edi
pop esi
mov eax, 6
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 0x20
je 0x410a96
cmp eax, 9
je 0x410a96
cmp eax, 0xa
je 0x410a96
cmp eax, 0xd
je 0x410a96
mov word [ebp - 8], ax
lea ecx, [ebp - 8]
xor eax, eax
lea edx, [ecx + 2]
mov word [ebp - 6], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410904
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 8]
sub ecx, edx
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00405050
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
test ax, ax
je 0x41099c
nop dword [eax]
cmp ax, 0x3c
je 0x41099c
mov ecx, esi
call fcn.00410af0
mov edx, dword [edi]
movzx eax, ax
mov dword [ebp + 0x10], eax
mov eax, dword [edx - 0xc]
mov dword [ebp + 0xc], eax
lea ebx, [eax + 1]
test ebx, ebx
js 0x410a1c
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, ebx
or ecx, eax
jge 0x410971
push ebx
mov ecx, edi
call fcn.00404e50
mov edx, dword [edi]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov word [edx + eax*2], cx
mov eax, dword [edi]
cmp ebx, dword [eax - 8]
jg 0x410a1c
mov dword [eax - 0xc], ebx
xor ecx, ecx
mov eax, dword [edi]
mov word [eax + ebx*2], cx
mov eax, dword [esi + 0x54]
movzx eax, word [eax]
test ax, ax
jne 0x410930
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jle 0x410a0e
push 0x26
push eax
call fcn.005eda0d
add esp, 8
test eax, eax
je 0x410a0e
sub eax, dword [edi]
sar eax, 1
js 0x410a0e
push 0x65a304
push str.amp_
mov ecx, edi
call fcn.00403ae0
push 0x65a75c
push 0x65a760
mov ecx, edi
call fcn.00403ae0
push 0x65a76c
push 0x65a770
mov ecx, edi
call fcn.00403ae0
push 0x65a77c
push 0x65a780
mov ecx, edi
call fcn.00403ae0
push 0x65a790
push 0x65a794
mov ecx, edi
call fcn.00403ae0
pop edi
pop esi
mov eax, 7
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80070057
call fcn.00405000
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x102
push eax
mov dword [ebp + 0xc], 0x102
call fcn.005ee7ca
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x10d
push eax
mov dword [ebp + 0xc], 0x10d
call fcn.005ee7ca
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x10f
push eax
mov dword [ebp + 0xc], 0x10f
call fcn.005ee7ca
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x110
push eax
mov dword [ebp + 0xc], 0x110
call fcn.005ee7ca
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x201
push eax
mov dword [ebp + 0xc], 0x201
call fcn.005ee7ca
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x202
push eax
mov dword [ebp + 0xc], 0x202
call fcn.005ee7ca
push 0x68e640
lea eax, [ebp + 0xc]
mov dword [esi + 0x58], 0x10c
push eax
mov dword [ebp + 0xc], 0x10c
call fcn.005ee7ca
int3