Function at 0x40148e
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff70
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov edi, 0x40f5c0
cmp dword [0x42d5c0], 0
jne 0x4016cd
push dword [ebp + 8]
call fcn.00402a90
pop ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
dec eax
je 0x4014c9
dec eax
je 0x401529
jmp 0x40159e
push str.SM001T26.DAT
lea edx, [ebp - 0x60]
push edx
call fcn.00402a60
add esp, 8
push str.SM001T24.DAT
lea ecx, [ebp - 0x70]
push ecx
call fcn.00402a60
add esp, 8
push str.SM001T21.DAT
lea eax, [ebp - 0x80]
push eax
call fcn.00402a60
add esp, 8
push str.SM001T46.DAT
lea edx, [ebp - 0x90]
push edx
call fcn.00402a60
add esp, 8
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [ebp - 0x8c], al
mov byte [ebp - 0x7c], al
mov byte [ebp - 0x6c], al
mov byte [ebp - 0x5c], al
jmp 0x401623
push str.SM091T26.DAT
lea edx, [ebp - 0x60]
push edx
call fcn.00402a60
add esp, 8
push str.SM091T24.DAT
lea ecx, [ebp - 0x70]
push ecx
call fcn.00402a60
add esp, 8
push str.SM091T21.DAT
lea eax, [ebp - 0x80]
push eax
call fcn.00402a60
add esp, 8
push str.SM091T46.DAT
lea edx, [ebp - 0x90]
push edx
call fcn.00402a60
add esp, 8
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [ebp - 0x8d], al
mov byte [ebp - 0x7d], al
mov byte [ebp - 0x6d], al
mov byte [ebp - 0x5d], al
mov edx, dword [ebp + 8]
mov cl, byte [edx + 1]
mov byte [ebp - 0x8c], cl
mov byte [ebp - 0x7c], cl
mov byte [ebp - 0x6c], cl
mov byte [ebp - 0x5c], cl
jmp 0x401623
push str.SM991T26.DAT
lea eax, [ebp - 0x60]
push eax
call fcn.00402a60
add esp, 8
push str.SM991T24.DAT
lea edx, [ebp - 0x70]
push edx
call fcn.00402a60
add esp, 8
push str.SM991T21.DAT
lea eax, [ebp - 0x80]
push eax
call fcn.00402a60
add esp, 8
push str.SM991T46.DAT
lea edx, [ebp - 0x90]
push edx
call fcn.00402a60
add esp, 8
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [ebp - 0x8e], al
mov byte [ebp - 0x7e], al
mov byte [ebp - 0x6e], al
mov byte [ebp - 0x5e], al
mov edx, dword [ebp + 8]
mov cl, byte [edx + 1]
mov byte [ebp - 0x8d], cl
mov byte [ebp - 0x7d], cl
mov byte [ebp - 0x6d], cl
mov byte [ebp - 0x5d], cl
mov eax, dword [ebp + 8]
mov dl, byte [eax + 2]
mov byte [ebp - 0x8c], dl
mov byte [ebp - 0x7c], dl
mov byte [ebp - 0x6c], dl
mov byte [ebp - 0x5c], dl
mov al, byte [ebx + 1]
mov byte [ebp - 0x8a], al
mov byte [ebp - 0x7a], al
mov byte [ebp - 0x6a], al
mov byte [ebp - 0x5a], al
mov dl, byte [ebx + 2]
mov byte [ebp - 0x89], dl
mov byte [ebp - 0x79], dl
mov byte [ebp - 0x69], dl
mov byte [ebp - 0x59], dl
mov eax, dword [ebp - 0x14]
dec eax
je 0x401652
dec eax
je 0x40166d
jmp 0x401691
push str.SM001F25.DAT
lea ecx, [ebp - 0x50]
push ecx
call fcn.00402a60
add esp, 8
mov eax, dword [ebp + 8]
mov dl, byte [eax]
mov byte [ebp - 0x4c], dl
jmp 0x4016bc
push str.SM091F25.DAT
lea ecx, [ebp - 0x50]
push ecx
call fcn.00402a60
add esp, 8
mov eax, dword [ebp + 8]
mov dl, byte [eax]
mov byte [ebp - 0x4d], dl
mov ecx, dword [ebp + 8]
mov al, byte [ecx + 1]
mov byte [ebp - 0x4c], al
jmp 0x4016bc
push str.SM991F25.DAT
lea edx, [ebp - 0x50]
push edx
call fcn.00402a60
add esp, 8
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [ebp - 0x4e], al
mov edx, dword [ebp + 8]
mov cl, byte [edx + 1]
mov byte [ebp - 0x4d], cl
mov eax, dword [ebp + 8]
mov dl, byte [eax + 2]
mov byte [ebp - 0x4c], dl
mov cl, byte [ebx + 1]
mov byte [ebp - 0x4a], cl
mov al, byte [ebx + 2]
mov byte [ebp - 0x49], al
jmp 0x40175d
push 0x40d233
lea edx, [ebp - 0x80]
push edx
call fcn.00402a60
add esp, 8
push dword [ebp + 8]
lea ecx, [ebp - 0x80]
push ecx
call fcn.004029d8
add esp, 8
push 0x40d236
lea eax, [ebp - 0x80]
push eax
call fcn.004029d8
add esp, 8
lea edx, [ebx + 1]
push edx
lea ecx, [ebp - 0x80]
push ecx
call fcn.004029d8
add esp, 8
push 0x40d238
lea eax, [ebp - 0x80]
push eax
call fcn.004029d8
add esp, 8
push 0x40d23d
lea edx, [ebp - 0x50]
push edx
call fcn.00402a60
add esp, 8
push dword [ebp + 8]
lea ecx, [ebp - 0x50]
push ecx
call fcn.004029d8
add esp, 8
push ebx
lea eax, [ebp - 0x50]
push eax
call fcn.004029d8
add esp, 8
push str..DAT
lea edx, [ebp - 0x50]
push edx
call fcn.004029d8
add esp, 8
cmp byte [ebx + 1], 0x39
jle 0x401771
mov cl, byte [ebx + 1]
and cl, 0xf
add cl, 9
mov byte [ebp - 0x1c], cl
jmp 0x401779
mov al, byte [ebx + 1]
and al, 0xf
mov byte [ebp - 0x1c], al
shl byte [ebp - 0x1c], 4
cmp byte [ebx + 2], 0x39
jle 0x401791
mov dl, byte [ebx + 2]
and dl, 0xf
add dl, 9
mov byte [ebp - 0x1b], dl
jmp 0x40179a
mov cl, byte [ebx + 2]
and cl, 0xf
mov byte [ebp - 0x1b], cl
mov al, byte [ebp - 0x1b]
or byte [ebp - 0x1c], al
cmp dword [0x42d5c0], 0
jne 0x401837
push 0x40d245
lea edx, [ebp - 0x30]
push edx
call fcn.00402a60
add esp, 8
push dword [ebp + 8]
call fcn.00402a90
pop ecx
dec eax
je 0x4017cf
dec eax
je 0x4017f1
jmp 0x401813
push 0x40d248
lea ecx, [ebp - 0x30]
push ecx
call fcn.004029d8
add esp, 8
push dword [ebp + 8]
lea eax, [ebp - 0x30]
push eax
call fcn.004029d8
add esp, 8
jmp 0x401822
push 0x40d24b
lea edx, [ebp - 0x30]
push edx
call fcn.004029d8
add esp, 8
push dword [ebp + 8]
lea ecx, [ebp - 0x30]
push ecx
call fcn.004029d8
add esp, 8
jmp 0x401822
push dword [ebp + 8]
lea eax, [ebp - 0x30]
push eax
call fcn.004029d8
add esp, 8
push dword [ebp + 8]
call fcn.00408990
pop ecx
mov dword [ebp - 0xc], eax
add dword [ebp - 0xc], 0x7d0
jmp 0x401846
push dword [ebp + 8]
lea edx, [ebp - 0x30]
push edx
call fcn.00402a60
add esp, 8
push 0
push dword [ebp - 0xc]
call fcn.00402483
movzx ecx, ax
push ecx
push 0x40d24d
lea eax, [ebp - 0x30]
push eax
call fcn.00402503
add esp, 0x14
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0
jge 0x401893
cmp dword [ebp - 4], 0xfffffff7
je 0x401846
push dword [ebp - 4]
push str._nConnection_error__x_n
call fcn.0040629c
add esp, 8
mov dword [ebp - 4], 0xfffffffb
jmp 0x401f41
cmp byte [ebp - 0x1c], 0x25
je 0x401929
cmp byte [ebp - 0x1c], 0x23
je 0x401929
cmp byte [ebp - 0x1c], 0x20
je 0x401929
cmp byte [ebp - 0x1c], 0x41
je 0x401929
cmp byte [ebp - 0x1c], 0x39
je 0x401929
cmp byte [ebp - 0x1c], 0x40
je 0x401929
cmp byte [ebp - 0x1c], 0x34
je 0x401929
cmp byte [ebp - 0x1c], 0x38
je 0x401929
cmp byte [ebp - 0x1c], 0x51
je 0x401929
cmp byte [ebp - 0x1c], 0x50
je 0x401929
cmp byte [ebp - 0x1c], 0x52
je 0x401929
cmp byte [ebp - 0x1c], 0x49
je 0x401929
cmp byte [ebp - 0x1c], 0x22
je 0x401929
cmp byte [ebp - 0x1c], 0x37
je 0x401929
cmp byte [ebp - 0x1c], 0x42
je 0x401929
cmp byte [ebp - 0x1c], 0x43
je 0x401929
cmp byte [ebp - 0x1c], 0x44
je 0x401929
cmp byte [ebp - 0x1c], 0x45
je 0x401929
cmp byte [ebp - 0x1c], 0x47
je 0x401929
cmp byte [ebp - 0x1c], 0x54
je 0x401929
cmp byte [ebp - 0x1c], 0x56
je 0x401929
cmp byte [ebp - 0x1c], 0x58
je 0x401929
cmp byte [ebp - 0x1c], 0x63
jne 0x401ae8
push 0x40d26a
lea edx, [ebp - 0x50]
push edx
call fcn.00405c9c
add esp, 8
mov esi, eax
test eax, eax
jne 0x401ace
push dword [0x40f3e8]
lea edx, [ebp - 0x50]
push edx
push str._nfopen__s_failed_err___d_n
call fcn.0040629c
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
jmp 0x401f41
push esi
push 9
push edi
call fcn.00405950
add esp, 0xc
test eax, eax
je 0x401ace
dec dword [esi + 8]
js 0x401988
mov ecx, dword [esi]
inc dword [esi]
mov al, byte [ecx]
jmp 0x40198f
push esi
call fcn.00405ff8
pop ecx
mov byte [edi + 8], al
dec dword [esi + 8]
js 0x40199f
mov edx, dword [esi]
inc dword [esi]
mov cl, byte [edx]
jmp 0x4019a8
push esi
call fcn.00405ff8
pop ecx
mov ecx, eax
mov byte [edi + 9], cl
mov al, byte [edi + 9]
push eax
mov dl, byte [edi + 8]
push edx
call fcn.00401f54
add esp, 8
xor ebx, ebx
mov bl, al
dec dword [esi + 8]
js 0x4019cc
mov eax, dword [esi]
inc dword [esi]
mov dl, byte [eax]
jmp 0x4019d5
push esi
call fcn.00405ff8
pop ecx
mov edx, eax
mov byte [edi + 0xa], dl
dec dword [esi + 8]
js 0x4019e5
mov eax, dword [esi]
inc dword [esi]
mov cl, byte [eax]
jmp 0x4019ee
push esi
call fcn.00405ff8
pop ecx
mov ecx, eax
mov byte [edi + 0xb], cl
mov al, byte [edi + 0xb]
push eax
mov dl, byte [edi + 0xa]
push edx
call fcn.00401f54
add esp, 8
and eax, 0xff
shl ebx, 8
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, 0xfffffffa
add eax, eax
inc eax
push esi
push eax
lea edx, [edi + 0xc]
push edx
call fcn.00405950
add esp, 0xc
mov byte [0x4125c0], 0xf1
mov cl, byte [ebp - 0x1c]
push ecx
call fcn.004012a2
pop ecx
mov byte [0x4125c1], al
xor ebx, ebx
jmp 0x401a63
mov al, byte [edi + ebx + 1]
push eax
mov dl, byte [edi + ebx]
push edx
call fcn.00401f54
add esp, 8
lea ecx, [ebx + 4]
sar ecx, 1
jns 0x401a5a
adc ecx, 0
mov byte [ecx + 0x4125c0], al
add ebx, 2
mov eax, dword [ebp - 0x10]
add eax, eax
add eax, 0xfffffffe
cmp ebx, eax
jle 0x401a3f
mov edx, dword [ebp - 0x10]
add edx, 2
push edx
push 0x4125c0
push dword [ebp - 8]
call fcn.004027b3
add esp, 0xc
push 0x3000
push 0x4125c0
push dword [ebp - 8]
call fcn.004027de
add esp, 0xc
mov ebx, eax
mov dword [ebp - 4], eax
test ebx, ebx
jg 0x401ac0
cmp ebx, 0xfffffff4
jne 0x401f17
push ebx
push 0x40d288
call fcn.0040629c
add esp, 8
jmp 0x401a25
movsx edx, byte [0x4125c0]
push edx
call fcn.00401439
pop ecx
test byte [esi + 0x12], 0x20
je 0x401967
push esi
call fcn.00405840
pop ecx
push dword [ebp - 8]
call fcn.00402876
pop ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1c]
add ecx, 0xffffffdf
cmp ecx, 0x64
ja case.0x401aff.33
mov cl, byte [ecx + 0x401b06]
jmp dword [ecx*4 + 0x401b6b]
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x50]
push edx
lea ecx, [ebp - 0x80]
push ecx
push dword [ebp + 8]
push dword [ebp - 8]
call fcn.00401f80
add esp, 0x14
mov dword [ebp - 4], eax
jmp 0x401bbb
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x50]
push edx
lea ecx, [ebp - 0x80]
push ecx
push dword [ebp + 8]
push dword [ebp - 8]
call fcn.004021ab
add esp, 0x14
mov dword [ebp - 4], eax
jmp 0x401bbb
mov al, byte [ebp - 0x1c]
mov byte [ebp - 0x1c], al
cmp byte [ebp - 0x1c], 0x95
je 0x401c37
cmp byte [ebp - 0x1c], 0x93
je 0x401c37
cmp byte [ebp - 0x1c], 0x90
je 0x401c37
cmp byte [ebp - 0x1c], 0x94
je 0x401c37
cmp byte [ebp - 0x1c], 0x99
je 0x401c37
cmp byte [ebp - 0x1c], 0x97
je 0x401c37
cmp byte [ebp - 0x1c], 0x89
je 0x401c37
cmp byte [ebp - 0x1c], 0x98
je 0x401c37
cmp byte [ebp - 0x1c], 0x91
je 0x401c37
cmp byte [ebp - 0x1c], 0x96
je 0x401c37
cmp byte [ebp - 0x1c], 0x92
je 0x401c37
cmp byte [ebp - 0x1c], 0x86
je 0x401c37
cmp byte [ebp - 0x1c], 0x84
je 0x401c37
cmp byte [ebp - 0x1c], 0x87
je 0x401c37
cmp byte [ebp - 0x1c], 0x82
je 0x401c37
cmp byte [ebp - 0x1c], 0x81
je 0x401c37
cmp byte [ebp - 0x1c], 0x77
je 0x401c37
cmp byte [ebp - 0x1c], 0x76
je 0x401c37
cmp byte [ebp - 0x1c], 0x75
je 0x401c37
cmp byte [ebp - 0x1c], 0x73
jne 0x401e98
push 0x40d29a
lea edx, [ebp - 0x50]
push edx
call fcn.00405c9c
add esp, 8
mov esi, eax
test eax, eax
jne 0x401e7e
lea edx, [ebp - 0x50]
push edx
push str._nfopen__s_failed_n
call fcn.0040629c
add esp, 8
mov dword [ebp - 4], 0xffffffff
jmp 0x401f4a
push esi
push 9
push edi
call fcn.00405950
add esp, 0xc
test eax, eax
je 0x401e7e
mov byte [0x4125c0], 0xf3
xor ecx, ecx
mov cl, byte [ebp - 0x1c]
add ecx, 0xffffff8d
cmp ecx, 0x26
ja case.0x401c9b.116
jmp dword [ecx*4 + 0x401ca2]
mov byte [0x4125c1], 0x25
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x23
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x20
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x41
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x3f
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x40
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x34
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x38
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x3b
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x3a
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x3d
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x44
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x3c
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x39
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x54
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x55
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x56
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x57
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x58
jmp case.0x401c9b.116
mov byte [0x4125c1], 0x59
xor ebx, ebx
mov al, byte [edi + ebx + 1]
push eax
mov dl, byte [edi + ebx]
push edx
call fcn.00401f54
add esp, 8
lea ecx, [ebx + 4]
sar ecx, 1
jns 0x401e1c
adc ecx, 0
mov byte [ecx + 0x4125c0], al
add ebx, 2
cmp ebx, 6
jle 0x401e01
push 6
push 0x4125c0
push dword [ebp - 8]
call fcn.004027b3
add esp, 0xc
push 0x3000
push 0x4125c0
push dword [ebp - 8]
call fcn.004027de
add esp, 0xc
mov ebx, eax
mov dword [ebp - 4], eax
test ebx, ebx
jg 0x401e7e
cmp ebx, 0xfffffff4
jne 0x401e72
push ebx
push 0x40d2af
call fcn.0040629c
add esp, 8
jmp 0x401c83
mov dword [ebp - 4], 0xfffffffa
jmp 0x401f17
test byte [esi + 0x12], 0x20
je 0x401c6f
push esi
call fcn.00405840
pop ecx
push dword [ebp - 8]
call fcn.00402876
pop ecx
cmp byte [ebp - 0x1c], 0x88
jne 0x401f12
mov byte [0x4125c0], 0xf2
mov dl, byte [ebp - 0x1c]
sub dl, 0x88
jne 0x401eb4
mov byte [0x4125c1], 0x25
push 2
push 0x4125c0
push dword [ebp - 8]
call fcn.004027b3
add esp, 0xc
push 0x3000
push 0x4125c0
push dword [ebp - 8]
call fcn.004027de
add esp, 0xc
mov ebx, eax
mov dword [ebp - 4], eax
test ebx, ebx
jg 0x401f02
cmp ebx, 0xfffffff4
jne 0x401ef9
push ebx
push 0x40d2c1
call fcn.0040629c
add esp, 8
jmp 0x401e9e
mov dword [ebp - 4], 0xfffffffa
jmp 0x401f17
push esi
call fcn.00405840
pop ecx
push dword [ebp - 8]
call fcn.00402876
pop ecx
mov eax, dword [ebp - 4]
jmp 0x401f4d
push dword [ebp - 8]
call fcn.00402876
pop ecx
push ebx
push 0x40d2d3
call fcn.0040629c
add esp, 8
push esi
call fcn.00405840
pop ecx
mov eax, dword [ebp - 4]
jmp 0x401f4d
push dword [ebp - 8]
call fcn.00402876
pop ecx
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret