Function at 0x6e57cc
Capabilities:
Parse credit card information

Disassembly:
push edi
test esi, esi
je 0x6e5eac
invalid
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0xa24], 0
jne 0x6e5eac
mov cl, byte [esi + 0x15]
test cl, 0x10
je 0x6e57ff
movzx eax, word [esi + 0x10]
test byte [eax*4 + 0x280a80ed], 1
jne 0x6e5eac
movzx eax, word [esi + 0x10]
cmp eax, 0x24
mov edx, 0x80
mov edi, 0xa6
jg 0x6e5a11
je 0x6e5d88
cmp eax, 9
jg 0x6e5926
je 0x6e59a0
sub eax, 0
je 0x6e58f6
dec eax
je 0x6e58eb
dec eax
dec eax
je 0x6e5890
dec eax
dec eax
je 0x6e5850
dec eax
dec eax
je 0x6e5958
jmp 0x6e5dd2
test cl, 0x20
je 0x6e5dd2
mov eax, dword [ebx + 0x3d0]
test eax, eax
je 0x6e58b4
cmp word [eax + 0x10], 5
jne 0x6e58b4
mov eax, dword [eax + 0x18]
test byte [eax + 0xa], 1
je 0x6e587a
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
jmp 0x6e5883
push eax
push ebx
call fcn.00730eb5
pop ecx
pop ecx
and dword [ebx + 0x3d0], 0
mov dword [ebx + 0x450], eax
cmp dword [ebp + 0x10], 0x14
jne 0x6e5e5e
movzx eax, word [esi + 0x10]
cmp dword [eax*4 + 0x280a7b6c], 0x2801eb01
jne 0x6e5e67
jmp 0x6e5eac
cmp dword [ebp + 0x10], 0
jne 0x6e58d1
lea edi, [ebx + 0x450]
push edi
push ebx
call fcn.0072eab1
and dword [edi], 0
pop ecx
pop ecx
jmp 0x6e5e67
cmp dword [ebp + 0x10], 0x14
je 0x6e5dd2
push 0x280ab438
push ebx
call fcn.00755272
jmp 0x6e5b1a
test byte [esi + 0x14], 8
jne 0x6e5890
jmp 0x6e5dd2
mov al, byte [esi + 0x14]
test al, 0x80
jne 0x6e5dd2
test al, 4
je 0x6e5890
cmp dword [esi + 0xc], 0x8d
je 0x6e5da8
push dword [ebp + 0x10]
push dword [esi + 0x18]
push ebx
call fcn.006e57c4
add esp, 0xc
jmp 0x6e5890
cmp eax, 0xa
jl 0x6e5dd2
cmp eax, 0xb
jle 0x6e5964
cmp eax, 0xe
je 0x6e5cda
cmp eax, 0xf
je 0x6e594a
cmp eax, 0x10
jmp 0x6e5845
push 0xf
push dword [esi + 0x18]
push ebx
call fcn.006e5fb2
add esp, 0xc
or byte [ebx + 0xa59], 1
jmp 0x6e5d88
cmp dword [ebp + 0x10], 0x14
mov dword [ebx + 0x190], 0x3fffffff
jne 0x6e597e
test byte [esi + 0x14], 8
jne 0x6e5eac
push dword [ebp + 0x10]
push esi
push ebx
call fcn.006e5f19
add esp, 0xc
test al, al
jne 0x6e5dd2
cmp dword [ebp + 0x10], 0xa8
jne 0x6e59a0
or byte [esi + 0x15], 8
inc dword [ebx + 0x190]
cmp dword [ebp + 0x10], 0
jne 0x6e5890
push 0
push dword [esi + 0xc]
push dword [ebx + 0x468]
push ebx
call fcn.006cf197
mov eax, dword [eax]
add esp, 0x10
mov ecx, dword [eax + 8]
push 0
push dword [esi + 0xc]
mov eax, 0x40000
and ecx, eax
push dword [ebx + 0x468]
cmp ecx, eax
push ebx
jne 0x6e59f0
call fcn.006cf197
mov eax, dword [eax]
add esp, 0x10
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x6e5a00
call fcn.006cf197
push dword [eax]
push ebx
call fcn.007320e4
add esp, 0x18
push eax
push 0x280ab414
push ebx
call fcn.00755272
jmp 0x6e591e
cmp eax, edx
jg 0x6e5ad0
je 0x6e5d00
cmp eax, 0x45
jg 0x6e5a68
cmp eax, 0x44
jge 0x6e5ac1
cmp eax, 0x25
je 0x6e5d0d
cmp eax, 0x2b
je 0x6e5a5d
cmp eax, 0x2d
je 0x6e5aa9
cmp eax, 0x2e
je 0x6e5ac1
cmp eax, 0x30
je 0x6e5ac1
cmp eax, 0x35
jle 0x6e5dd2
cmp eax, 0x42
jle 0x6e5ac1
jmp 0x6e5dd2
inc dword [ebx + 0x190]
jmp 0x6e5eac
cmp eax, 0x5b
jl 0x6e5dd2
cmp eax, 0x5d
jle 0x6e5ac1
cmp eax, 0x6f
je 0x6e5aa0
cmp eax, 0x70
je 0x6e5aa9
cmp eax, 0x7d
je 0x6e5cbf
cmp eax, 0x7e
je 0x6e5d88
cmp eax, 0x7f
je 0x6e5d5d
jmp 0x6e5dd2
cmp cl, 4
je 0x6e5dd2
cmp dword [ebp + 0x10], 0xa8
jne 0x6e5d26
or cl, 8
mov byte [esi + 0x15], cl
jmp 0x6e5d26
test byte [esi + 0x14], 0x40
je 0x6e5dd2
jmp 0x6e5d88
lea edx, [eax - 0x83]
cmp edx, 0x35
ja 0x6e5dd2
movzx edx, byte [edx + 0x2801822f]
jmp dword [edx*4 + 0x280181ff]
pop ecx
pop ecx
jmp 0x6e5890
cmp dword [ebp + 0x10], 0x14
jne 0x6e5cda
test byte [esi + 0x14], 8
je 0x6e5cda
mov dword [ebx + 0x190], 0x3fffffff
jmp 0x6e5eac
push dword [ebp + 0x10]
push esi
push ebx
call fcn.006e5f19
add esp, 0xc
test al, al
jne 0x6e5dd2
movzx eax, word [esi + 0x10]
push eax
push dword [esi + 0x18]
push ebx
call fcn.006e5fb2
add esp, 0xc
cmp dword [ebp + 0x10], 0xa8
jne 0x6e5d0d
or byte [esi + 0x15], 8
mov dword [ebx + 0x190], 0x3fffffff
jmp 0x6e5890
push dword [esi + 0xc]
push ebx
call fcn.006f09a6
movzx eax, word [esi + 0x10]
push 0x400
push eax
push ebx
call fcn.006efd15
add esp, 0x14
mov dword [esi + 0xc], eax
test byte [esi + 0x14], 4
je 0x6e5890
push dword [ebp + 0x10]
mov eax, dword [esi + 0x18]
push dword [eax + 4]
jmp 0x6e5918
push eax
push dword [esi + 0x18]
push ebx
call fcn.006e5fb2
add esp, 0xc
cmp dword [ebp + 0x10], edi
jne 0x6e5d7b
mov al, byte [esi + 0x15]
test al, 0xe0
jne 0x6e5d88
or al, 0x10
mov byte [esi + 0x15], al
cmp dword [ebp + 0x10], 0xa8
jne 0x6e5d88
or byte [esi + 0x15], 8
inc dword [ebx + 0x190]
jmp 0x6e5890
mov edi, dword [esi + 0x18]
test edi, edi
je 0x6e5890
push dword [ebp + 0x10]
push edi
push ebx
call fcn.006e57c4
mov edi, dword [edi + 4]
add esp, 0xc
jmp 0x6e5dab
mov eax, dword [ebp + 0x10]
cmp eax, 0x98
je 0x6e5890
mov ecx, 0xa6
cmp eax, ecx
je 0x6e5890
cmp eax, 0x14
je 0x6e589a
test eax, eax
je 0x6e5e03
mov edi, dword [eax*4 + 0x280a7070]
jmp 0x6e5e08
mov edi, 0x280ab350
mov ax, word [esi + 0x10]
test ax, ax
jne 0x6e5e1e
test byte [esi + 0x14], 0x80
je 0x6e5e1e
mov eax, 0x280ab344
jmp 0x6e5e45
cmp ax, cx
jne 0x6e5e2a
mov eax, 0x280ab328
jmp 0x6e5e45
cmp ax, 0x15f
jne 0x6e5e3b
push esi
push ebx
call fcn.006ef868
pop ecx
pop ecx
jmp 0x6e5e45
movzx eax, ax
mov eax, dword [eax*4 + 0x280a7070]
push edi
push eax
push 0x280ab310
push ebx
call fcn.00754840
push eax
push ebx
call fcn.0074f1ce
add esp, 0x18
jmp 0x6e5eac
cmp dword [ebp + 0x10], 0xa8
je 0x6e5e6b
or byte [esi + 0x14], 0x20
mov eax, dword [ebp + 0x10]
cmp eax, 0x25
je 0x6e5ea8
cmp eax, 0x24
je 0x6e5ea8
test eax, eax
jne 0x6e5e8d
or byte [esi + 0x15], 0x80
and byte [esi + 0x14], 0x7f
or byte [ebx + 0xa59], 1
jmp 0x6e5eac
cmp eax, 0x98
je 0x6e5eac
cmp eax, 0xa6
je 0x6e5eac
cmp eax, 0xa8
je 0x6e5eac
or byte [esi + 0x14], 0x10
jmp 0x6e5eac
or byte [esi + 0x14], 0x90
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
ret