Function at 0x402720
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x45bcc0
push 0x439ec0
mov eax, dword fs:[0]
push eax
sub esp, 0x5b8
mov eax, dword [0x45f478]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x5b8], eax
mov dword [ebp - 0x5b0], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x5a8]
push eax
call fcn.0040d3c0
add esp, 4
mov dword [ebp - 0x60], 0x83828180
mov dword [ebp - 0x5c], 0x86f08584
mov dword [ebp - 0x58], 0x8a898887
mov dword [ebp - 0x54], 0x8e8d8c8b
mov dword [ebp - 0x50], 0x9291908f
mov dword [ebp - 0x4c], 0x96959493
mov dword [ebp - 0x48], 0x9a999897
mov dword [ebp - 0x44], 0x9e9d9c9b
mov dword [ebp - 0x40], 0xa2a1a09f
mov dword [ebp - 0x3c], 0xf1a5a4a3
mov dword [ebp - 0x38], 0xa9a8a7a6
mov dword [ebp - 0x34], 0xadacabaa
mov dword [ebp - 0x30], 0xe1e0afae
mov dword [ebp - 0x2c], 0xe5e4e3e2
mov dword [ebp - 0x28], 0xe9e8e7e6
mov dword [ebp - 0x24], 0xedecebea
mov word [ebp - 0x20], 0xefee
mov ecx, 0x10
mov esi, str.ABVGDEoJZIiKLMNOPRSTUFHCcQqxYXcuaabvgdeojziiklmnoprstufhccqqxyxcua
lea edi, [ebp - 0xa4]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x5b8]
cmp dword [eax], 0xfde9
jne 0x40291a
push 0
push 0
push 0xa
mov ecx, dword [ebp - 0x5ac]
push dword [ecx]
push ebx
push 0xfde9
call fcn.004024f0
add esp, 0x18
mov edi, eax
mov dword [ebp - 0x5b4], edi
mov esi, dword [sym.imp.KERNEL32.dll_RaiseException]
test edi, edi
jne 0x402863
push eax
push eax
push eax
push 0x60000000
call esi
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004380a8
mov edi, eax
mov dword [ebp - 0x5b0], edi
push edi
push dword [ebp - 0x5b4]
push 0x14
mov eax, dword [ebp - 0x5ac]
push dword [eax]
push ebx
push 0xfde9
call fcn.004024f0
add esp, 0x1c
mov dword [ebp - 0x5b4], eax
test eax, eax
jne 0x4028bc
push eax
push eax
push eax
push 0x60000000
call esi
mov eax, dword [ebp - 0x5b4]
push 0
push 0
mov ecx, dword [ebp - 0x5ac]
push dword [ecx]
push ebx
push eax
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jne 0x4028e5
push eax
push eax
push eax
push 0x60000000
call esi
mov eax, dword [ebp - 0x5ac]
mov dword [eax], edi
push edi
push ebx
push ebx
call dword [sym.imp.USER32.dll_CharToOemBuffA]
mov eax, dword [ebp - 0x5b8]
mov dword [eax], 0x4e9f
push dword [ebp - 0x5b0]
call fcn.004380f7
add esp, 4
mov dword [ebp - 0x5b0], 0
xor esi, esi
mov dword [ebp - 0x5bc], esi
mov eax, dword [ebp - 0x5ac]
cmp esi, dword [eax]
jae 0x402a6b
movzx eax, byte [ebx + esi]
push eax
call fcn.004385a1
add esp, 4
test eax, eax
jne 0x40295f
mov dword [ebp - 0x5c4], eax
cmp eax, 0x42
jae 0x40295f
mov cl, byte [ebx + esi]
cmp cl, byte [ebp + eax - 0x60]
jne 0x4029c9
mov al, byte [ebp + eax - 0xa4]
mov byte [ebx + esi], al
movzx eax, byte [ebx + esi]
push eax
call fcn.00438574
add esp, 4
test eax, eax
jne 0x4029c3
mov al, byte [ebx + esi]
cmp al, 0x3f
je 0x4029c3
cmp al, 0x21
je 0x4029c3
cmp al, 0x3a
je 0x4029c3
cmp al, 0x2c
je 0x4029c3
cmp al, 0x22
je 0x4029c3
cmp al, 0x27
je 0x4029c3
cmp al, 0x60
je 0x4029c3
cmp al, 0x20
je 0x4029c3
cmp al, 0x28
je 0x4029c3
cmp al, 0x29
je 0x4029c3
cmp al, 0x5b
je 0x4029c3
cmp al, 0x5d
je 0x4029c3
cmp al, 0x7b
je 0x4029c3
cmp al, 0x7d
je 0x4029c3
cmp al, 0x3c
je 0x4029c3
cmp al, 0x3e
je 0x4029c3
cmp al, 0x2d
je 0x4029c3
cmp al, 0x2e
je 0x4029c3
cmp al, 0x3b
je 0x4029c3
mov byte [ebx + esi], 0x20
inc esi
jmp 0x40291c
inc eax
jmp 0x402941
mov dword [ebp - 0x5c8], ebx
mov dword [ebp - 4], 0xfffffffe
mov eax, ebx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00439a01
mov esp, ebp
pop ebp
ret