Function at 0x4e1970
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
push ebx
xor edx, edx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edx
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
or ebx, 0xffffffff
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x10], eax
lea ecx, [ecx]
movzx esi, word [eax]
cmp esi, edx
jne 0x4e1a48
sub eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x1c]
sar eax, 1
cmp ecx, edx
mov dword [edi + 8], eax
je 0x4e20ce
mov edx, dword [ecx + 0xd4]
mov dword [ebp - 0x24], edx
call fcn.004e17e0
test al, al
je 0x4e20ce
mov esi, dword [ebp + 8]
mov eax, dword [edi + 0x1c]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 8]
mov eax, dword [eax + 0xd4]
sub edx, ecx
sub eax, dword [ebp - 0x24]
je 0x4e1a1b
sub ecx, eax
cmp dword [ebp - 0x14], 0
mov dword [esi + 4], ecx
je 0x4e1a0d
sub dword [ebp - 0x14], eax
jmp 0x4e1a18
cmp dword [ebp - 0x20], 0
je 0x4e1a18
sub dword [edi], eax
sub dword [edi + 4], eax
sub dword [edi + 8], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x58]
add eax, edx
cmp dword [ecx + 0x18], 8
jb 0x4e1a31
mov ecx, dword [ecx + 4]
jmp 0x4e1a34
add ecx, 4
lea eax, [ecx + eax*2]
mov dword [edi + 0xc], ecx
movzx esi, word [eax]
test esi, esi
mov dword [ebp - 0x10], eax
je 0x4e20ce
cmp dword [ebp - 0x14], 0
je 0x4e1a96
push esi
push 0x10176c10
call dword [0x10152918]
add esp, 8
test eax, eax
je 0x4e1a89
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [edi], edx
sar eax, 1
sub eax, edx
lea edx, [eax + edx - 1]
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [edi + 4], edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
jmp 0x4e1a99
mov eax, dword [ebp - 0x10]
add eax, 2
xor edx, edx
jmp 0x4e19aa
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 8], 0
je 0x4e1d0a
cmp esi, 0x3e
jne 0x4e1b76
mov edx, dword [ebp - 4]
test dl, 0xc0
jne 0x4e1b90
sub ecx, dword [edi + 0xc]
sar ecx, 1
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0xc]
cmp ecx, 1
mov dword [edi + 8], eax
jne 0x4e1b0f
cmp ebx, ecx
mov dword [ebp - 8], 0
jne 0x4e1b5f
cmp dword [ebp - 0x18], 0x2f
jne 0x4e1b5f
cmp dword [ebp - 0x1c], 0
je 0x4e1b03
mov eax, dword [ebp - 0x1c]
push eax
push 0x10176c00
call dword [0x10152918]
mov edx, dword [ebp - 4]
add esp, 8
test eax, eax
je 0x4e1b5f
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
jmp 0x4e1b5f
add eax, 0xffffffff
cmp eax, ecx
jle 0x4e1d4c
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
lea eax, [ecx + ecx]
sub esi, eax
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 8]
lea eax, [esi + 2]
sub ecx, eax
jmp 0x4e1b35
mov edx, dword [ebp - 4]
sub dword [ebp - 0x24], 1
je 0x4e1b58
mov dx, word [eax]
mov si, word [eax + ecx]
add eax, 2
cmp dx, si
je 0x4e1b32
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
mov dword [ebp - 8], 0
test dl, 0x20
je 0x4e206a
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x3c
jne 0x4e1b8d
cmp ebx, 2
je 0x4e217f
cmp ebx, 0xffffffff
je 0x4e217f
mov edx, dword [ebp - 4]
test bl, 1
je 0x4e1cc3
test dl, 0xc0
je 0x4e1bfa
cmp esi, 0x22
jne 0x4e1bcb
test dl, dl
jns 0x4e1cac
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x80
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x27
jne 0x4e1cac
test dl, 0x40
je 0x4e1cac
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x40
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x22
jne 0x4e1c2b
test edx, 0x100
je 0x4e1cac
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x180
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x27
jne 0x4e1c58
test edx, 0x100
je 0x4e1cac
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x140
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x3d
jne 0x4e1c8a
cmp dword [ebp - 0x18], esi
je 0x4e1c8a
test edx, 0x100
jne 0x4e1c92
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x100
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x4e19b0
test edx, 0x100
je 0x4e1cac
push esi
push 0x10176688
call dword [0x10152918]
add esp, 8
test eax, eax
jne 0x4e1cac
xor dword [ebp - 4], 0x100
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x4e19b0
test bl, 0x40
je 0x4e1d4c
cmp esi, 0x22
jne 0x4e1ced
test dl, 0x40
jne 0x4e1d4c
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, 0x80
mov dword [ebp - 4], edx
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x27
jne 0x4e1d4c
test dl, dl
js 0x4e1d4c
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, 0x40
mov dword [ebp - 4], edx
xor edx, edx
jmp 0x4e19b0
mov eax, dword [ebp - 4]
test eax, eax
je 0x4e2083
test al, 0x10
je 0x4e1d5a
cmp esi, 0x3c
je 0x4e218c
push esi
push 0x10176688
call dword [0x10152918]
add esp, 8
test eax, eax
jne 0x4e1d4c
xor dword [ebp - 4], 0x10
mov ebx, 2
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], 0x10177468
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
test al, 1
je 0x4e1e4d
mov edx, 1
xor eax, edx
cmp esi, 0x60
mov dword [ebp - 4], eax
ja 0x4e1e2b
cmp esi, 0x40
jbe 0x4e1d83
cmp esi, 0x5b
jb 0x4e1e2b
cmp esi, 0x5f
je 0x4e1e2b
cmp esi, 0x3a
je 0x4e1e2b
cmp esi, 0x2f
jne 0x4e1dc0
add dword [ebp - 0x10], 2
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [ebp - 0xc], edx
sar eax, 1
add eax, edx
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0x10177464
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x21
jne 0x4e1dd9
add dword [ebp - 0x10], 2
or eax, 2
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x3f
jne 0x4e1e09
add dword [ebp - 0x10], 2
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [ebp - 8], 0x101767a8
sar eax, 1
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
lea ebx, [esi - 0x2f]
xor edx, edx
jmp 0x4e19b0
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [ebp - 0xc], edx
mov dword [eax], 0x10176bdc
jmp 0x4e1f94
sub ecx, dword [edi + 0xc]
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
sar ecx, 1
mov dword [ebp - 0xc], edx
mov ebx, edx
mov dword [ebp - 8], 0x10177464
mov dword [ebp - 0x14], ecx
xor edx, edx
jmp 0x4e19b0
test al, 2
je 0x4e1f45
xor eax, 2
cmp esi, 0x2d
mov dword [ebp - 4], eax
jne 0x4e1e74
add dword [ebp - 0x10], 2
or eax, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
test al, 0x20
je 0x4e1ecb
push esi
push 0x10176bd4
call dword [0x10152918]
add esp, 8
test eax, eax
mov dword [ebp - 8], 0x10177464
mov dword [ebp - 0xc], 1
je 0x4e1eac
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov ebx, 0x40
xor edx, edx
jmp 0x4e19b0
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], 0x10176bac
jmp 0x4e2011
cmp esi, 0x5b
jne 0x4e1ee4
add dword [ebp - 0x10], 2
or eax, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x44
jne 0x4e1efd
add dword [ebp - 0x10], 2
or eax, 0x20
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
mov edx, dword [edi + 8]
push 0xffffffffffffffff
push edx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], 0x10176b7c
mov eax, dword [ebp + 8]
add eax, 0x10
push eax
mov dword [ebp - 8], 0x10177464
mov dword [ebp - 0xc], 1
call fcn.004e0c90
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
add esp, 0x18
or ebx, 0xffffffff
xor edx, edx
jmp 0x4e19b0
test al, 4
je 0x4e1fbb
xor eax, 4
cmp esi, 0x2d
mov dword [ebp - 4], eax
jne 0x4e1f73
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0x10176794
mov dword [ebp - 0xc], 3
lea ebx, [esi - 0xd]
xor edx, edx
jmp 0x4e19b0
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [ebp - 0xc], 1
mov dword [eax], 0x10176b54
mov edx, dword [ebp + 8]
add edx, 0x10
push edx
mov dword [ebp - 8], 0x10177464
call fcn.004e0c90
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
add esp, 0x18
or ebx, 0xffffffff
xor edx, edx
jmp 0x4e19b0
test al, 8
je 0x4e2031
xor eax, 8
cmp esi, 0x43
mov dword [ebp - 4], eax
jne 0x4e1fe9
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0x1017677c
mov dword [ebp - 0xc], 3
lea ebx, [esi - 0x3b]
xor edx, edx
jmp 0x4e19b0
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [ebp - 8], 0x10177464
mov dword [ebp - 0xc], 1
mov dword [eax], 0x10176b28
mov ecx, dword [ebp + 8]
add ecx, 0x10
push ecx
call fcn.004e0c90
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
add esp, 0x18
or ebx, 0xffffffff
xor edx, edx
jmp 0x4e19b0
test al, 0x20
je 0x4e1d4c
cmp esi, 0x3c
jne 0x4e2050
add dword [ebp - 0x10], 2
or dword [ebp - 4], 1
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x4e19b0
cmp esi, 0x3e
jne 0x4e1d4c
mov eax, dword [ebp - 0x10]
sub eax, dword [edi + 0xc]
lea ebx, [esi + 2]
sar eax, 1
add eax, 1
mov dword [edi + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 4]
mov dword [eax], ebx
mov dword [eax + 8], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp esi, 0x3c
jne 0x4e209d
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 1
xor edx, edx
jmp 0x4e19b0
push esi
push 0x10176688
mov ebx, 4
call dword [0x10152918]
add esp, 8
test eax, eax
je 0x4e1d39
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0x10
xor edx, edx
jmp 0x4e19b0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
cmp dword [edi + 8], edx
jne 0x4e20f4
pop edi
pop esi
mov dword [eax + 8], 0
mov dword [eax], 0
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 4
je 0x4e206a
cmp ebx, 2
je 0x4e206a
test byte [ebp - 4], 0x20
mov ecx, 0x10176b20
jne 0x4e2151
cmp ebx, 0x40
je 0x4e2151
cmp ebx, 1
jne 0x4e2122
mov ecx, 0x10176b0c
jmp 0x4e2156
test ebx, ebx
jne 0x4e212d
mov ecx, 0x10176afc
jmp 0x4e2156
cmp ebx, 8
jne 0x4e2139
mov ecx, 0x10176ae0
jmp 0x4e2156
cmp ebx, 0x10
jne 0x4e2145
mov ecx, 0x10176ab0
jmp 0x4e2156
cmp ebx, 0x20
jne 0x4e2156
mov ecx, 0x10176aa0
jmp 0x4e2156
mov ecx, 0x10176a84
or ebx, 0xffffffff
push ebx
push edx
mov edx, dword [ebp + 8]
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
mov eax, esp
add edx, 0x10
push edx
mov dword [eax], 0x10176a54
call fcn.004e0c90
add esp, 0x18
jmp 0x4e206a
sub ecx, dword [edi + 0xc]
sar ecx, 1
mov dword [edi + 8], ecx
jmp 0x4e206a
sub ecx, dword [edi + 0xc]
mov ebx, 4
sar ecx, 1
mov dword [edi + 8], ecx
jmp 0x4e206a