Function at 0x49ab75
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x51cdb8]
push ebx
push esi
xor esi, esi
mov cl, byte [eax]
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
push edi
lea edi, [eax + 1]
mov dword [0x51cdb8], edi
cmp cl, 0x41
jg 0x49ad1e
je 0x49b191
test cl, cl
je 0x49ad04
cmp cl, 0x2f
jle case.default.0x49b087
cmp cl, 0x31
jle 0x49ac2c
cmp cl, 0x39
jg case.default.0x49b087
movsx eax, byte [edi - 1]
lea eax, [eax*8 + 0x4f2120]
push eax
lea ecx, [ebp - 8]
call fcn.00497a9a
cmp dword [ebp - 8], 0
je 0x49ac19
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], str.operator
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x1c], 8
call fcn.00497860
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0x20]
push ecx
mov ecx, eax
call fcn.00497bc4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
mov dword [eax + 4], ecx
pop edi
pop esi
pop ebx
leave
ret
mov ebx, esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ebx
cmp byte [ebp + 0xc], bl
je 0x49aca5
lea eax, [ebp - 0x20]
push eax
call fcn.0049bf33
push eax
lea eax, [ebp - 0x18]
push 0x3c
push eax
call fcn.00497b55
add esp, 0x10
lea ecx, [ebp - 0x10]
push eax
call fcn.00497c82
lea ecx, [ebp - 0x10]
call fcn.0049a978
cmp al, 0x3e
jne 0x49ac70
push 0x20
lea ecx, [ebp - 0x10]
call fcn.00497cd9
push 0x3e
lea ecx, [ebp - 0x10]
call fcn.00497cd9
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x49ac84
mov byte [eax], 1
mov edi, dword [0x51cdb8]
cmp byte [edi], bl
jne 0x49ac9b
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
jmp 0x49ac24
mov ebx, dword [ebp - 0x10]
inc edi
mov dword [0x51cdb8], edi
push esi
lea eax, [ebp - 0x20]
push esi
push eax
call fcn.0049cd37
add esp, 0xc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov dword [0x51cdb8], edi
test ecx, ecx
je 0x49aceb
cmp byte [edi - 1], 0x31
jne 0x49aceb
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push 0x7e
push eax
call fcn.00497b55
add esp, 0xc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test ebx, ebx
je 0x49ac19
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 8]
call fcn.00497c82
jmp 0x49ac19
lea eax, [edi - 1]
mov dword [0x51cdb8], eax
mov ecx, dword [ebp + 8]
push 1
call fcn.004978ce
mov eax, dword [ebp + 8]
jmp 0x49ac27
cmp cl, 0x42
je 0x49b18e
jle case.default.0x49b087
cmp cl, 0x5a
jle 0x49b191
cmp cl, 0x5f
jne case.default.0x49b087
movsx eax, byte [edi]
lea ecx, [edi + 1]
mov dword [0x51cdb8], ecx
cmp eax, 0x4f
jg 0x49ae61
cmp eax, 0x44
jge 0x49b15d
cmp eax, 0x39
jg 0x49addd
je 0x49adb0
test eax, eax
je 0x49ada5
cmp eax, 0x2f
jle case.default.0x49b087
cmp eax, 0x36
jle 0x49ad95
cmp eax, 0x38
jg case.default.0x49b087
movsx eax, byte [ecx - 1]
lea eax, [eax*8 + 0x4f2240]
mov ecx, dword [ebp + 8]
push eax
call fcn.00497860
jmp 0x49ad16
movsx eax, byte [ecx - 1]
lea eax, [eax*8 + 0x4f2240]
jmp 0x49abd5
mov dword [0x51cdb8], edi
jmp 0x49ad0c
movsx eax, byte [ecx - 1]
lea ecx, [ebp - 0x18]
lea eax, [eax*8 + 0x4f2240]
push eax
call fcn.00497860
mov edx, dword [ebp - 0x14]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x49ac27
cmp eax, 0x3f
je 0x49ae0e
cmp eax, 0x40
jle case.default.0x49b087
cmp eax, 0x42
jle 0x49b15d
push 1
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0049be09
mov edx, dword [ebp - 0x14]
add esp, 0xc
or edx, 0x1000
jmp 0x49adcd
mov dl, byte [ecx]
lea eax, [ecx + 1]
mov dword [0x51cdb8], eax
test dl, dl
je 0x49ae56
mov edi, dword [ebp + 8]
cmp dl, 0x30
je 0x49ae2f
mov dword [edi + 4], esi
mov byte [edi + 4], 2
mov dword [edi], esi
jmp 0x49ae4f
push esi
lea eax, [ebp - 0x18]
push 1
push eax
call fcn.0049be09
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x18]
or ecx, 0x1000
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, edi
jmp 0x49ac27
mov dword [0x51cdb8], ecx
jmp 0x49ad0c
cmp eax, 0x54
jg 0x49b046
cmp eax, 0x53
jge 0x49b15d
sub eax, 0x50
je 0x49aff6
sub eax, 1
je 0x49abde
sub eax, 1
jne case.default.0x49b087
movsx eax, byte [ecx - 1]
lea ecx, [ebp - 8]
lea eax, [eax*8 + 0x4f2208]
push eax
call fcn.00497a9a
mov eax, dword [0x51cdb8]
mov al, byte [eax]
test al, al
jne 0x49aebf
push 1
push dword [ebp + 8]
lea ecx, [ebp - 8]
call fcn.00497c08
jmp 0x49ad16
movsx eax, al
sub eax, 0x30
js case.default.0x49b087
cmp eax, 5
jae case.default.0x49b087
lea eax, [eax*8 + 0x4f2548]
push eax
lea ecx, [ebp - 0x18]
call fcn.00497a9a
mov eax, dword [0x51cdb8]
mov cl, byte [eax]
inc eax
mov dword [0x51cdb8], eax
cmp cl, 0x30
je 0x49afbc
cmp cl, 0x31
je 0x49af10
jle 0x49af0a
cmp cl, 0x34
jle 0x49b032
dec eax
jmp 0x49ad07
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x18]
push eax
call fcn.00497c82
lea eax, [ebp - 0x20]
push eax
call fcn.0049bc70
pop ecx
push 0x2c
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.00497be6
push eax
lea ecx, [ebp - 0x10]
call fcn.00497c82
lea eax, [ebp - 0x20]
push eax
call fcn.0049bc70
pop ecx
push 0x2c
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.00497be6
push eax
lea ecx, [ebp - 0x10]
call fcn.00497c82
lea eax, [ebp - 0x20]
push eax
call fcn.0049bc70
pop ecx
push 0x2c
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.00497be6
push eax
lea ecx, [ebp - 0x10]
call fcn.00497c82
lea eax, [ebp - 0x20]
push esi
push eax
call fcn.00499f86
pop ecx
pop ecx
push 0x29
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.00497be6
push eax
lea ecx, [ebp - 0x10]
call fcn.00497c82
push 0x27
push dword [ebp + 8]
lea ecx, [ebp - 0x10]
call fcn.00497be6
jmp 0x49ad16
lea eax, [ebp - 0x20]
push esi
push eax
call fcn.00499c45
mov eax, dword [ebp - 0x20]
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
push 0x20
mov dword [ebp - 0xc], eax
call fcn.00497cd9
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x10]
call fcn.00497bc4
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
jmp 0x49b039
movsx eax, byte [ecx - 1]
lea ecx, [ebp - 8]
lea eax, [eax*8 + 0x4f2208]
push eax
call fcn.00497a9a
push esi
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.0049ab75
add esp, 0xc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x49b032
test eax, 0x400
jne case.default.0x49b087
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 8]
push dword [ebp + 8]
call fcn.00497bc4
jmp 0x49ad16
cmp eax, 0x56
jle 0x49b16d
cmp eax, 0x57
jle case.default.0x49b087
cmp eax, 0x59
jle 0x49b15d
cmp eax, 0x5f
jne case.default.0x49b087
movsx eax, byte [ecx]
inc ecx
sub eax, 0x41
mov dword [0x51cdb8], ecx
cmp eax, 0xc
ja case.default.0x49b087
movzx eax, byte [eax + 0x49b1d1]
jmp dword [eax*4 + 0x49b1c5]
movsx eax, byte [ecx - 1]
lea eax, [eax*8 + 0x4f22d0]
jmp 0x49ad8a
movsx eax, byte [ecx - 1]
lea ecx, [ebp - 0x18]
lea eax, [eax*8 + 0x4f22d0]
push eax
call fcn.00497860
mov eax, dword [0x51cdb8]
cmp byte [eax], 0x3f
lea eax, [ebp - 0x28]
push eax
jne 0x49b0e1
call fcn.00499d1c
pop ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.00497c82
mov eax, dword [0x51cdb8]
cmp byte [eax], 0x40
jne 0x49b0f0
inc eax
mov dword [0x51cdb8], eax
jmp 0x49b0f0
call fcn.0049beeb
pop ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.00497c82
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x4f2c1c
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x1c], 2
call fcn.00497c2a
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
jmp 0x49ac24
movsx eax, byte [ecx - 1]
lea ecx, [ebp - 0x18]
lea eax, [eax*8 + 0x4f22d0]
push eax
call fcn.00497860
jmp 0x49b144
cmp al, 0x40
je 0x49b154
inc ecx
mov dword [0x51cdb8], ecx
lea ecx, [ebp - 0x18]
push eax
call fcn.00497cd9
mov ecx, dword [0x51cdb8]
mov al, byte [ecx]
test al, al
jne 0x49b130
cmp al, 0x40
jne 0x49b10a
inc ecx
mov dword [0x51cdb8], ecx
jmp 0x49b10a
movsx eax, byte [ecx - 1]
lea eax, [eax*8 + 0x4f2208]
jmp 0x49ad8a
movsx eax, byte [ecx - 1]
lea eax, [eax*8 + 0x4f2208]
jmp 0x49abd5
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov byte [eax + 4], 2
mov dword [eax], esi
jmp 0x49ac27
xor esi, esi
inc esi
movsx eax, byte [edi - 1]
lea ecx, [ebp - 8]
lea eax, [eax*8 + 0x4f20e8]
push eax
call fcn.00497a9a
test esi, esi
je 0x49abde
cmp dword [ebp - 8], 0
je 0x49ac19
or dword [ebp - 4], 0x200
jmp 0x49ac19