Function at 0x41e9d0
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x4ad368
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push ebx
push esi
mov esi, dword [esp + 0x64]
xor ebx, ebx
push edi
push ebx
mov al, byte [esi]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00410c90
mov ecx, dword [0x4b49e8]
push ecx
push ebx
push esi
lea ecx, [esp + 0x34]
call fcn.004111c0
mov edi, 0x4d83ac
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x60], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4d83ac
mov ecx, esi
call fcn.00410d10
mov dl, byte [esp + 0x68]
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x38], dl
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp ecx, ebx
mov byte [esp + 0x60], 1
mov byte [esp + 0xf], bl
mov byte [esp + 0xe], bl
mov byte [esp + 0xd], bl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
jbe 0x41f2b4
mov ecx, dword [esp + 0x2c]
push ebp
mov ebp, esi
test eax, eax
jne 0x41eaaa
test ecx, ecx
je 0x41ea8c
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
jmp 0x41ea91
mov eax, 0x4b49e4
mov al, byte [eax]
mov byte [esp + 0x1c], al
mov ecx, dword [esp + 0x1c]
push ecx
push 1
mov ecx, ebp
call fcn.00418c60
jmp 0x41ee61
lea ecx, [esp + 0x3c]
call fcn.004137b0
test eax, eax
jne 0x41ecf6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp ecx, esi
mov ecx, dword [esp + 0x30]
jb 0x41eae8
test ecx, ecx
je 0x41eae8
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41eaed
mov edx, 0x4b49e4
cmp byte [edx], 0x3d
jne 0x41ebb3
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x41eb1a
test ecx, ecx
je 0x41eb1a
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41eb1f
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
jne 0x41ebb3
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x44]
call fcn.0041f4d0
mov eax, dword [ebp + 8]
test eax, eax
je 0x41ee61
mov ecx, ebp
call fcn.0041f450
mov eax, dword [ebp + 4]
test eax, eax
jne 0x41eb58
xor edi, edi
jmp 0x41eb5d
mov edi, dword [ebp + 8]
add edi, eax
mov ecx, ebp
call fcn.0041f450
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x41eb6f
xor eax, eax
jmp 0x41eb74
mov eax, dword [ebp + 8]
add eax, ecx
mov ecx, ebp
lea esi, [eax - 1]
call fcn.0041f450
mov ecx, dword [ebp + 4]
test esi, esi
jne 0x41eb89
xor eax, eax
jmp 0x41eb8d
mov eax, esi
sub eax, ecx
test edi, edi
jne 0x41eba1
xor ecx, ecx
push ecx
push eax
mov ecx, ebp
call fcn.0041f330
jmp 0x41ee61
sub edi, esi
mov ecx, edi
push ecx
push eax
mov ecx, ebp
call fcn.0041f330
jmp 0x41ee61
mov dl, byte [esp + 0x11]
test dl, dl
je 0x41ecaa
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x41ebe3
test ecx, ecx
je 0x41ebe3
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ebe8
mov edx, 0x4b49e4
cmp byte [edx], 9
je 0x41ec44
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x41ec11
test ecx, ecx
je 0x41ec11
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ec16
mov edx, 0x4b49e4
cmp byte [edx], 0x20
je 0x41ec44
mov edx, dword [esp + 0x34]
mov byte [esp + 0x11], 0
cmp edx, eax
mov esi, eax
jb 0x41ec52
test ecx, ecx
je 0x41ec52
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ec57
mov ebp, dword [esp + 0x6c]
mov byte [esp + 0x11], 1
jmp 0x41ee69
mov edx, 0x4b49e4
cmp byte [edx], 0x3d
je 0x41ecaa
mov esi, dword [esp + 0x18]
cmp esi, eax
jge 0x41ecaa
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x34], esi
jb 0x41ec84
test ecx, ecx
je 0x41ec84
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
lea eax, [ecx + esi]
jmp 0x41ec89
mov eax, 0x4b49e4
mov dl, byte [eax]
mov ecx, edi
mov byte [esp + 0x20], dl
mov eax, dword [esp + 0x20]
push eax
push 1
call fcn.00418c60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
inc esi
cmp esi, eax
jl 0x41ec68
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x41ecca
test ecx, ecx
je 0x41ecca
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
lea eax, [ecx + esi]
jmp 0x41eccf
mov eax, 0x4b49e4
mov dl, byte [eax]
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0x24], dl
mov eax, dword [esp + 0x24]
push eax
push 1
call fcn.00418c60
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x6c]
jmp 0x41ee69
mov eax, dword [esp + 0x40]
test eax, eax
je 0x41ed10
mov ecx, dword [esp + 0x44]
sub ecx, eax
sar ecx, 2
cmp ecx, 3
jae 0x41ef09
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov ecx, dword [esp + 0x30]
mov esi, eax
jb 0x41ed3c
test ecx, ecx
je 0x41ed3c
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ed41
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
jne 0x41ee69
mov edx, dword [esp + 0x40]
test edx, edx
je 0x41ee3d
mov esi, dword [esp + 0x44]
sub esi, edx
and esi, 0xfffffffc
cmp esi, 8
jne 0x41ee3d
mov ebx, dword [edx + 4]
mov esi, eax
sub esi, ebx
cmp esi, 2
jne 0x41eeb2
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x41ed9d
test ecx, ecx
je 0x41ed9d
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41eda2
mov edx, 0x4b49e4
cmp byte [edx], 0x62
je 0x41ee49
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x41edd0
test ecx, ecx
je 0x41edd0
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41edd5
mov edx, 0x4b49e4
cmp byte [edx], 0x42
je 0x41ee49
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x41edff
test ecx, ecx
je 0x41edff
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ee04
mov edx, 0x4b49e4
cmp byte [edx], 0x71
je 0x41ee38
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x41ee2e
test ecx, ecx
je 0x41ee2e
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ee33
mov edx, 0x4b49e4
cmp byte [edx], 0x51
jne 0x41eeae
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x14]
push edx
push eax
jmp 0x41ee58
mov byte [esp + 0x12], 1
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x14]
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.0041f4d0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
inc eax
cmp eax, edx
mov dword [esp + 0x14], eax
jb 0x41ea75
mov esi, dword [esp + 0x40]
pop ebp
test esi, esi
je 0x41f2b4
mov eax, dword [esp + 0x40]
sub eax, esi
sar eax, 2
je 0x41f2b4
mov eax, dword [esi]
dec eax
cmp eax, edx
mov dword [esp + 0x10], eax
jae 0x41f2b4
mov edi, dword [esp + 0x68]
jmp 0x41f26e
mov edx, dword [esp + 0x40]
mov esi, dword [edx]
dec esi
cmp esi, eax
jg 0x41f246
mov edi, dword [esp + 0x6c]
jmp 0x41eec7
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x34], esi
jb 0x41eee2
test ecx, ecx
je 0x41eee2
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add eax, esi
jmp 0x41eee7
mov eax, 0x4b49e4
mov cl, byte [eax]
mov byte [esp + 0x28], cl
mov ecx, edi
mov edx, dword [esp + 0x28]
push edx
push 1
call fcn.00418c60
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
jle 0x41eec3
jmp 0x41f246
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov ecx, dword [esp + 0x30]
mov esi, eax
jb 0x41ef35
test ecx, ecx
je 0x41ef35
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ef3a
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
je 0x41ee4e
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x41ef67
test ecx, ecx
je 0x41ef67
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41ef6c
mov edx, 0x4b49e4
cmp byte [edx], 0x3d
jne 0x41ee69
mov edx, dword [esp + 0x40]
test edx, edx
je 0x41ee69
mov esi, dword [esp + 0x44]
sub esi, edx
sar esi, 2
cmp esi, 4
jb 0x41ee69
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x41efb8
test ecx, ecx
je 0x41efb8
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x41efbd
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
jne 0x41ee69
mov edx, dword [esp + 0x40]
inc eax
test edx, edx
mov byte [esp + 0x13], 1
mov byte [esp + 0x11], 1
mov dword [esp + 0x18], eax
jne 0x41efe5
mov edi, dword [esp + 0x44]
xor eax, eax
jmp 0x41eff0
mov edi, dword [esp + 0x44]
mov eax, edi
sub eax, edx
sar eax, 2
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [edx + 8]
sub esi, eax
dec esi
test esi, esi
jg 0x41f00e
push edi
push edx
lea ecx, [esp + 0x44]
call fcn.0043a9c0
jmp 0x41ee61
mov al, byte [esp + 0x12]
test al, al
je 0x41f13a
lea ebx, [esi + 1]
push ebx
call fcn.004a2a14
mov ecx, dword [esp + 0x44]
add esp, 4
test ecx, ecx
mov ebp, eax
jne 0x41f034
xor eax, eax
jmp 0x41f03d
mov eax, dword [esp + 0x44]
sub eax, ecx
sar eax, 2
mov edi, dword [ecx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, edi
jb 0x41f062
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41f062
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add eax, edi
jmp 0x41f067
mov eax, 0x4b49e4
mov byte [eax], 0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov edi, dword [ecx + 8]
inc edi
cmp eax, edi
jb 0x41f094
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41f094
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov edx, dword [esp + 0x30]
lea eax, [edx + edi]
jmp 0x41f099
mov eax, 0x4b49e4
push 0
push 1
push ebx
push ebp
push esi
push eax
call fcn.00418790
add esp, 0x18
test al, al
je 0x41f0db
push 0x23
push 0xd
push ebp
call fcn.004859a0
push 0x23
push 0xa
push ebp
call fcn.004859a0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x70]
push ebp
call fcn.0041f750
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x41f0e7
xor eax, eax
jmp 0x41f0f0
mov eax, dword [esp + 0x44]
sub eax, ecx
sar eax, 2
mov esi, dword [ecx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jb 0x41f124
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41f124
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
push ebp
add eax, esi
mov byte [eax], 0x3f
call fcn.004a2a3d
add esp, 4
jmp 0x41f246
mov eax, 0x4b49e4
push ebp
mov byte [eax], 0x3f
call fcn.004a2a3d
add esp, 4
jmp 0x41f246
test edx, edx
jne 0x41f142
xor eax, eax
jmp 0x41f149
sub edi, edx
sar edi, 2
mov eax, edi
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jb 0x41f16b
test ecx, ecx
je 0x41f16b
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
lea eax, [ecx + esi]
jmp 0x41f170
mov eax, 0x4b49e4
mov byte [eax], 0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov esi, dword [edx + 8]
inc esi
cmp eax, esi
jb 0x41f19c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41f19c
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add esi, eax
jmp 0x41f1a1
mov esi, 0x4b49e4
mov cl, byte [esp + 0x6c]
push 0
mov byte [esp + 0x50], cl
lea ecx, [esp + 0x50]
call fcn.00410c90
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x54]
call fcn.00410d10
lea edx, [esp + 0x4c]
push 0x3d
push edx
mov byte [esp + 0x6c], 2
call fcn.00486c90
mov ecx, dword [esp + 0x48]
add esp, 8
test ecx, ecx
jne 0x41f1eb
xor eax, eax
jmp 0x41f1f4
mov eax, dword [esp + 0x44]
sub eax, ecx
sar eax, 2
mov esi, dword [ecx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jb 0x41f219
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41f219
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add eax, esi
jmp 0x41f21e
mov eax, 0x4b49e4
mov byte [eax], 0x3f
mov ecx, dword [0x4b49e8]
push ecx
lea edx, [esp + 0x50]
push 0
push edx
mov ecx, ebp
call fcn.0041f670
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x68], 1
call fcn.00410c90
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
lea ecx, [esp + 0x44]
call fcn.0043a9c0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x6c]
jmp 0x41ee69
mov ecx, dword [esp + 0x2c]
cmp edx, eax
mov esi, eax
jb 0x41f28a
test ecx, ecx
je 0x41f28a
lea ecx, [esp + 0x28]
call fcn.0041f450
mov edx, dword [esp + 0x2c]
lea eax, [edx + esi]
jmp 0x41f28f
mov eax, 0x4b49e4
mov al, byte [eax]
mov byte [esp + 0x68], al
mov ecx, dword [esp + 0x68]
push ecx
push 1
mov ecx, edi
call fcn.00418c60
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jb 0x41f26a
mov edx, dword [esp + 0x3c]
push edx
call fcn.004a2a3d
add esp, 4
xor eax, eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], eax
push 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], 0xffffffff
call fcn.00410c90
mov ecx, dword [esp + 0x58]
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x58
ret 4