Function at 0x4014c7
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 0x401706
push dword [ebp + 8]
call fcn.00402c14
pop ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
dec eax
je 0x401502
dec eax
je 0x401562
jmp 0x4015d7
push str.SM001T26.DAT
lea edx, [ebp - 0x60]
push edx
call fcn.00402be4
add esp, 8
push str.SM001T24.DAT
lea ecx, [ebp - 0x70]
push ecx
call fcn.00402be4
add esp, 8
push str.SM001T21.DAT
lea eax, [ebp - 0x80]
push eax
call fcn.00402be4
add esp, 8
push str.SM001T46.DAT
lea edx, [ebp - 0x90]
push edx
call fcn.00402be4
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 0x40165c
push str.SM091T26.DAT
lea edx, [ebp - 0x60]
push edx
call fcn.00402be4
add esp, 8
push str.SM091T24.DAT
lea ecx, [ebp - 0x70]
push ecx
call fcn.00402be4
add esp, 8
push str.SM091T21.DAT
lea eax, [ebp - 0x80]
push eax
call fcn.00402be4
add esp, 8
push str.SM091T46.DAT
lea edx, [ebp - 0x90]
push edx
call fcn.00402be4
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 0x40165c
push str.SM991T26.DAT
lea eax, [ebp - 0x60]
push eax
call fcn.00402be4
add esp, 8
push str.SM991T24.DAT
lea edx, [ebp - 0x70]
push edx
call fcn.00402be4
add esp, 8
push str.SM991T21.DAT
lea eax, [ebp - 0x80]
push eax
call fcn.00402be4
add esp, 8
push str.SM991T46.DAT
lea edx, [ebp - 0x90]
push edx
call fcn.00402be4
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 0x40168b
dec eax
je 0x4016a6
jmp 0x4016ca
push str.SM001F25.DAT
lea ecx, [ebp - 0x50]
push ecx
call fcn.00402be4
add esp, 8
mov eax, dword [ebp + 8]
mov dl, byte [eax]
mov byte [ebp - 0x4c], dl
jmp 0x4016f5
push str.SM091F25.DAT
lea ecx, [ebp - 0x50]
push ecx
call fcn.00402be4
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 0x4016f5
push str.SM991F25.DAT
lea edx, [ebp - 0x50]
push edx
call fcn.00402be4
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 0x401796
push 0x40d233
lea edx, [ebp - 0x80]
push edx
call fcn.00402be4
add esp, 8
push dword [ebp + 8]
lea ecx, [ebp - 0x80]
push ecx
call fcn.00402b5c
add esp, 8
push 0x40d236
lea eax, [ebp - 0x80]
push eax
call fcn.00402b5c
add esp, 8
lea edx, [ebx + 1]
push edx
lea ecx, [ebp - 0x80]
push ecx
call fcn.00402b5c
add esp, 8
push 0x40d238
lea eax, [ebp - 0x80]
push eax
call fcn.00402b5c
add esp, 8
push 0x40d23d
lea edx, [ebp - 0x50]
push edx
call fcn.00402be4
add esp, 8
push dword [ebp + 8]
lea ecx, [ebp - 0x50]
push ecx
call fcn.00402b5c
add esp, 8
push ebx
lea eax, [ebp - 0x50]
push eax
call fcn.00402b5c
add esp, 8
push str..DAT
lea edx, [ebp - 0x50]
push edx
call fcn.00402b5c
add esp, 8
cmp byte [ebx + 1], 0x39
jle 0x4017aa
mov cl, byte [ebx + 1]
and cl, 0xf
add cl, 9
mov byte [ebp - 0x1c], cl
jmp 0x4017b2
mov al, byte [ebx + 1]
and al, 0xf
mov byte [ebp - 0x1c], al
shl byte [ebp - 0x1c], 4
cmp byte [ebx + 2], 0x39
jle 0x4017ca
mov dl, byte [ebx + 2]
and dl, 0xf
add dl, 9
mov byte [ebp - 0x1b], dl
jmp 0x4017d3
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 0x401870
push 0x40d245
lea edx, [ebp - 0x30]
push edx
call fcn.00402be4
add esp, 8
push dword [ebp + 8]
call fcn.00402c14
pop ecx
dec eax
je 0x401808
dec eax
je 0x40182a
jmp 0x40184c
push 0x40d248
lea ecx, [ebp - 0x30]
push ecx
call fcn.00402b5c
add esp, 8
push dword [ebp + 8]
lea eax, [ebp - 0x30]
push eax
call fcn.00402b5c
add esp, 8
jmp 0x40185b
push 0x40d24b
lea edx, [ebp - 0x30]
push edx
call fcn.00402b5c
add esp, 8
push dword [ebp + 8]
lea ecx, [ebp - 0x30]
push ecx
call fcn.00402b5c
add esp, 8
jmp 0x40185b
push dword [ebp + 8]
lea eax, [ebp - 0x30]
push eax
call fcn.00402b5c
add esp, 8
push dword [ebp + 8]
call fcn.00408b14
pop ecx
mov dword [ebp - 0xc], eax
add dword [ebp - 0xc], 0x7d0
jmp 0x40187f
push dword [ebp + 8]
lea edx, [ebp - 0x30]
push edx
call fcn.00402be4
add esp, 8
push 0
push dword [ebp - 0xc]
call fcn.004025eb
movzx ecx, ax
push ecx
push 0x40d24d
lea eax, [ebp - 0x30]
push eax
call fcn.00402689
add esp, 0x14
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0
jge 0x4018cc
cmp dword [ebp - 4], 0xfffffff7
je 0x40187f
push dword [ebp - 4]
push str._nConnection_error__x_n
call fcn.00406420
add esp, 8
mov dword [ebp - 4], 0xfffffffb
jmp 0x4020a9
cmp byte [ebp - 0x1c], 0x25
je 0x40199e
cmp byte [ebp - 0x1c], 0x23
je 0x40199e
cmp byte [ebp - 0x1c], 0x20
je 0x40199e
cmp byte [ebp - 0x1c], 0x41
je 0x40199e
cmp byte [ebp - 0x1c], 0x39
je 0x40199e
cmp byte [ebp - 0x1c], 0x40
je 0x40199e
cmp byte [ebp - 0x1c], 0x34
je 0x40199e
cmp byte [ebp - 0x1c], 0x38
je 0x40199e
cmp byte [ebp - 0x1c], 0x51
je 0x40199e
cmp byte [ebp - 0x1c], 0x50
je 0x40199e
cmp byte [ebp - 0x1c], 0x52
je 0x40199e
cmp byte [ebp - 0x1c], 0x49
je 0x40199e
cmp byte [ebp - 0x1c], 0x22
je 0x40199e
cmp byte [ebp - 0x1c], 0x37
je 0x40199e
cmp byte [ebp - 0x1c], 0x42
je 0x40199e
cmp byte [ebp - 0x1c], 0x43
je 0x40199e
cmp byte [ebp - 0x1c], 0x44
je 0x40199e
cmp byte [ebp - 0x1c], 0x45
je 0x40199e
cmp byte [ebp - 0x1c], 0x47
je 0x40199e
cmp byte [ebp - 0x1c], 0x54
je 0x40199e
cmp byte [ebp - 0x1c], 0x56
je 0x40199e
cmp byte [ebp - 0x1c], 0x58
je 0x40199e
cmp byte [ebp - 0x1c], 0x63
je 0x40199e
cmp byte [ebp - 0x1c], 0x67
je 0x40199e
cmp byte [ebp - 0x1c], 0x10
je 0x40199e
cmp byte [ebp - 0x1c], 0x14
je 0x40199e
cmp byte [ebp - 0x1c], 0x17
je 0x40199e
cmp byte [ebp - 0x1c], 0x68
je 0x40199e
cmp byte [ebp - 0x1c], 0x69
jne 0x401b5d
push 0x40d26a
lea edx, [ebp - 0x50]
push edx
call fcn.00405e20
add esp, 8
mov esi, eax
test eax, eax
jne 0x401b43
push dword [0x40f3e8]
lea edx, [ebp - 0x50]
push edx
push str._nfopen__s_failed_err___d_n
call fcn.00406420
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
jmp 0x4020a9
push esi
push 9
push edi
call fcn.00405ad4
add esp, 0xc
test eax, eax
je 0x401b43
dec dword [esi + 8]
js 0x4019fd
mov ecx, dword [esi]
inc dword [esi]
mov al, byte [ecx]
jmp 0x401a04
push esi
call fcn.0040617c
pop ecx
mov byte [edi + 8], al
dec dword [esi + 8]
js 0x401a14
mov edx, dword [esi]
inc dword [esi]
mov cl, byte [edx]
jmp 0x401a1d
push esi
call fcn.0040617c
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.004020bc
add esp, 8
xor ebx, ebx
mov bl, al
dec dword [esi + 8]
js 0x401a41
mov eax, dword [esi]
inc dword [esi]
mov dl, byte [eax]
jmp 0x401a4a
push esi
call fcn.0040617c
pop ecx
mov edx, eax
mov byte [edi + 0xa], dl
dec dword [esi + 8]
js 0x401a5a
mov eax, dword [esi]
inc dword [esi]
mov cl, byte [eax]
jmp 0x401a63
push esi
call fcn.0040617c
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.004020bc
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.00405ad4
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 0x401ad8
mov al, byte [edi + ebx + 1]
push eax
mov dl, byte [edi + ebx]
push edx
call fcn.004020bc
add esp, 8
lea ecx, [ebx + 4]
sar ecx, 1
jns 0x401acf
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 0x401ab4
mov edx, dword [ebp - 0x10]
add edx, 2
push edx
push 0x4125c0
push dword [ebp - 8]
call fcn.00402939
add esp, 0xc
push 0x3000
push 0x4125c0
push dword [ebp - 8]
call fcn.00402964
add esp, 0xc
mov ebx, eax
mov dword [ebp - 4], eax
test ebx, ebx
jg 0x401b35
cmp ebx, 0xfffffff4
jne 0x40207f
push ebx
push 0x40d288
call fcn.00406420
add esp, 8
jmp 0x401a9a
movsx edx, byte [0x4125c0]
push edx
call fcn.00401472
pop ecx
test byte [esi + 0x12], 0x20
je 0x4019dc
push esi
call fcn.004059c4
pop ecx
push dword [ebp - 8]
call fcn.004029fc
pop ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1c]
add ecx, 0xffffffef
cmp ecx, 0x74
ja case.0x401b74.17
mov cl, byte [ecx + 0x401b7b]
jmp dword [ecx*4 + 0x401bf0]
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.004020e8
add esp, 0x14
mov dword [ebp - 4], eax
jmp 0x401c40
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.00402313
add esp, 0x14
mov dword [ebp - 4], eax
jmp 0x401c40
mov al, byte [ebp - 0x1c]
mov byte [ebp - 0x1c], al
cmp byte [ebp - 0x1c], 0x95
je 0x401cf4
cmp byte [ebp - 0x1c], 0x93
je 0x401cf4
cmp byte [ebp - 0x1c], 0x90
je 0x401cf4
cmp byte [ebp - 0x1c], 0x94
je 0x401cf4
cmp byte [ebp - 0x1c], 0x99
je 0x401cf4
cmp byte [ebp - 0x1c], 0x97
je 0x401cf4
cmp byte [ebp - 0x1c], 0x89
je 0x401cf4
cmp byte [ebp - 0x1c], 0x98
je 0x401cf4
cmp byte [ebp - 0x1c], 0x91
je 0x401cf4
cmp byte [ebp - 0x1c], 0x96
je 0x401cf4
cmp byte [ebp - 0x1c], 0x92
je 0x401cf4
cmp byte [ebp - 0x1c], 0x86
je 0x401cf4
cmp byte [ebp - 0x1c], 0x84
je 0x401cf4
cmp byte [ebp - 0x1c], 0x87
je 0x401cf4
cmp byte [ebp - 0x1c], 0x82
je 0x401cf4
cmp byte [ebp - 0x1c], 0x81
je 0x401cf4
cmp byte [ebp - 0x1c], 0x77
je 0x401cf4
cmp byte [ebp - 0x1c], 0x76
je 0x401cf4
cmp byte [ebp - 0x1c], 0x75
je 0x401cf4
cmp byte [ebp - 0x1c], 0x73
je 0x401cf4
cmp byte [ebp - 0x1c], 0x72
je 0x401cf4
cmp byte [ebp - 0x1c], 0x12
je 0x401cf4
cmp byte [ebp - 0x1c], 0x15
je 0x401cf4
cmp byte [ebp - 0x1c], 0x18
je 0x401cf4
cmp byte [ebp - 0x1c], 0x19
je 0x401cf4
cmp byte [ebp - 0x1c], 9
jne 0x402000
push 0x40d29a
lea edx, [ebp - 0x50]
push edx
call fcn.00405e20
add esp, 8
mov esi, eax
test eax, eax
jne 0x401fe6
lea edx, [ebp - 0x50]
push edx
push str._nfopen__s_failed_n
call fcn.00406420
add esp, 8
mov dword [ebp - 4], 0xffffffff
jmp 0x4020b2
push esi
push 9
push edi
call fcn.00405ad4
add esp, 0xc
test eax, eax
je 0x401fe6
mov byte [0x4125c0], 0xf3
xor ecx, ecx
mov cl, byte [ebp - 0x1c]
cmp ecx, 0x86
jg 0x401dfe
je 0x401ee4
cmp ecx, 0x73
jg 0x401dab
je 0x401f2c
cmp ecx, 0x18
jg 0x401d94
je 0x401f3c
sub ecx, 9
je 0x401f60
sub ecx, 9
je 0x401f4e
sub ecx, 3
je 0x401f45
jmp case.0x401e0d.136
sub ecx, 0x19
je 0x401f57
sub ecx, 0x59
je 0x401f33
jmp case.0x401e0d.136
add ecx, 0xffffff8b
cmp ecx, 0xf
ja case.0x401e0d.136
jmp dword [ecx*4 + 0x401dbe]
add ecx, 0xffffff79
cmp ecx, 0x12
ja case.0x401e0d.136
jmp dword [ecx*4 + 0x401e14]
mov byte [0x4125c1], 0x25
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x23
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x20
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x41
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x3f
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x40
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x34
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x38
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x3b
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x3a
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x3d
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x44
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x3c
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x39
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x54
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x55
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x56
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x57
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x58
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x59
mov byte [0x4125c1], 0x37
jmp case.0x401e0d.136
mov byte [0x4125c1], 0xa5
jmp case.0x401e0d.136
mov byte [0x4125c1], 0xa0
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x37
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x51
jmp case.0x401e0d.136
mov byte [0x4125c1], 0x52
xor ebx, ebx
mov al, byte [edi + ebx + 1]
push eax
mov dl, byte [edi + ebx]
push edx
call fcn.004020bc
add esp, 8
lea ecx, [ebx + 4]
sar ecx, 1
jns 0x401f84
adc ecx, 0
mov byte [ecx + 0x4125c0], al
add ebx, 2
cmp ebx, 6
jle 0x401f69
push 6
push 0x4125c0
push dword [ebp - 8]
call fcn.00402939
add esp, 0xc
push 0x3000
push 0x4125c0
push dword [ebp - 8]
call fcn.00402964
add esp, 0xc
mov ebx, eax
mov dword [ebp - 4], eax
test ebx, ebx
jg 0x401fe6
cmp ebx, 0xfffffff4
jne 0x401fda
push ebx
push 0x40d2af
call fcn.00406420
add esp, 8
jmp 0x401d40
mov dword [ebp - 4], 0xfffffffa
jmp 0x40207f
test byte [esi + 0x12], 0x20
je 0x401d2c
push esi
call fcn.004059c4
pop ecx
push dword [ebp - 8]
call fcn.004029fc
pop ecx
cmp byte [ebp - 0x1c], 0x88
jne 0x40207a
mov byte [0x4125c0], 0xf2
mov dl, byte [ebp - 0x1c]
sub dl, 0x88
jne 0x40201c
mov byte [0x4125c1], 0x25
push 2
push 0x4125c0
push dword [ebp - 8]
call fcn.00402939
add esp, 0xc
push 0x3000
push 0x4125c0
push dword [ebp - 8]
call fcn.00402964
add esp, 0xc
mov ebx, eax
mov dword [ebp - 4], eax
test ebx, ebx
jg 0x40206a
cmp ebx, 0xfffffff4
jne 0x402061
push ebx
push 0x40d2c1
call fcn.00406420
add esp, 8
jmp 0x402006
mov dword [ebp - 4], 0xfffffffa
jmp 0x40207f
push esi
call fcn.004059c4
pop ecx
push dword [ebp - 8]
call fcn.004029fc
pop ecx
mov eax, dword [ebp - 4]
jmp 0x4020b5
push dword [ebp - 8]
call fcn.004029fc
pop ecx
push ebx
push 0x40d2d3
call fcn.00406420
add esp, 8
push esi
call fcn.004059c4
pop ecx
mov eax, dword [ebp - 4]
jmp 0x4020b5
push dword [ebp - 8]
call fcn.004029fc
pop ecx
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret