Function at 0x53ccb8
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov edi, ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x53d4ac
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp word [edi], 0x1b
jne 0x53cd4a
mov eax, dword [ebx + 0x59c]
cmp byte [eax + 0x220], 0
jne 0x53cd4a
mov dl, 1
mov eax, dword [ebx + 0x498]
call fcn.004f049c
push 0
xor ecx, ecx
mov edx, 0xb014
mov eax, dword [ebx + 0x59c]
call fcn.0044bf74
push 0
push 0
mov cl, byte [0x53d4bc]
xor edx, edx
mov eax, dword [ebx + 0x59c]
call fcn.0053846c
mov eax, ebx
call fcn.0053cb78
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x104]
mov eax, ebx
call fcn.0053dce8
cmp word [edi], 0x7a
jne 0x53cd5b
mov eax, dword [ebx + 0x5a0]
call fcn.0052219c
cmp word [edi], 0xd
jne 0x53cd81
mov eax, dword [ebx + 0x220]
cmp eax, dword [ebx + 0x460]
jne 0x53cd81
mov word [edi], 0
mov edx, dword [ebx + 0x460]
mov eax, ebx
call fcn.0053e268
cmp word [edi], 0xd
jne 0x53cda7
mov eax, dword [ebx + 0x220]
cmp eax, dword [ebx + 0x580]
jne 0x53cda7
mov word [edi], 0
mov edx, dword [ebx + 0x580]
mov eax, ebx
call fcn.0053e268
cmp word [edi], 0x2d
jne 0x53cdce
mov al, byte [0x53d4bc]
cmp al, byte [ebp + 8]
jne 0x53cdce
cmp byte [ebx + 0x1046], 0
jne 0x53cdce
mov dl, 1
mov eax, ebx
call fcn.00544534
mov word [edi], 0
cmp word [edi], 0x2e
jne 0x53cdf9
mov eax, ebx
call fcn.0053d970
test al, al
je 0x53cdf9
mov eax, dword [ebx + 0x220]
cmp eax, dword [ebx + 0x460]
je 0x53cdf9
mov eax, ebx
call fcn.0053d5dc
mov word [edi], 0
cmp word [edi], 0xd
jne 0x53ce22
mov eax, ebx
call fcn.0053d998
test al, al
je 0x53ce22
test byte [ebp + 8], 4
je 0x53ce1b
xor edx, edx
mov eax, ebx
call fcn.00540940
jmp 0x53ce22
mov eax, ebx
call fcn.005409a8
mov ax, word [edi]
add al, 0xcf
sub al, 9
jae 0x53ce67
test byte [ebp + 8], 4
je 0x53ce67
mov eax, ebx
call fcn.0053d970
test al, al
je 0x53ce67
lea eax, [ebp - 0x30]
mov dx, word [edi]
call fcn.00404a88
mov edx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x580]
call fcn.0044ada0
mov edx, dword [ebx + 0x580]
mov eax, ebx
call fcn.0053e268
mov word [edi], 0
mov ax, word [edi]
cmp al, 0x46
jne 0x53ce93
test byte [ebp + 8], 4
je 0x53ce93
mov eax, ebx
call fcn.0053d970
test al, al
je 0x53ce93
mov eax, dword [ebx + 0x440]
mov si, 0xffeb
call fcn.00403d1c
mov word [edi], 0
mov ax, word [edi]
cmp al, 0x44
jne 0x53cebf
test byte [ebp + 8], 4
je 0x53cebf
mov eax, ebx
call fcn.0053d970
test al, al
je 0x53cebf
mov eax, dword [ebx + 0x444]
mov si, 0xffeb
call fcn.00403d1c
mov word [edi], 0
mov ax, word [edi]
cmp al, 0x47
jne 0x53cee1
test byte [ebp + 8], 4
je 0x53cee1
mov dl, byte [ebx + 0x5c0]
xor dl, 1
mov eax, ebx
call fcn.0053bd74
mov word [edi], 0
test byte [ebp + 8], 4
je 0x53cf6e
mov eax, ebx
call fcn.0053d998
test al, al
je 0x53cf6e
mov ax, word [edi]
cmp al, 0x42
jne 0x53cf1e
mov eax, dword [ebx + 0x408]
mov dl, byte [eax + 0x170]
xor dl, 1
call fcn.004f049c
mov edx, dword [ebx + 0x408]
mov eax, ebx
call fcn.0053e268
mov ax, word [edi]
cmp al, 0x49
jne 0x53cf46
mov eax, dword [ebx + 0x40c]
mov dl, byte [eax + 0x170]
xor dl, 1
call fcn.004f049c
mov edx, dword [ebx + 0x40c]
mov eax, ebx
call fcn.0053e268
mov ax, word [edi]
cmp al, 0x55
jne 0x53cf6e
mov eax, dword [ebx + 0x410]
mov dl, byte [eax + 0x170]
xor dl, 1
call fcn.004f049c
mov edx, dword [ebx + 0x410]
mov eax, ebx
call fcn.0053e268
mov eax, ebx
call fcn.0053d90c
test al, al
je 0x53cf8e
cmp word [edi], 0x2e
jne 0x53cf8e
test byte [ebp + 8], 1
je 0x53cf8e
mov edx, ebx
mov eax, ebx
call fcn.005414cc
mov eax, ebx
call fcn.0053d934
test al, al
je 0x53cfae
cmp word [edi], 0x2d
jne 0x53cfae
test byte [ebp + 8], 4
je 0x53cfae
mov edx, ebx
mov eax, ebx
call fcn.00541500
mov eax, ebx
call fcn.0053d95c
test al, al
je 0x53cfce
cmp word [edi], 0x2d
jne 0x53cfce
test byte [ebp + 8], 1
je 0x53cfce
mov edx, ebx
mov eax, ebx
call fcn.0054169c
cmp word [edi], 0x21
jne 0x53cff3
mov eax, dword [ebx + 0x4e4]
mov eax, dword [eax + 0x20c]
mov edx, dword [eax + 0xc]
sub edx, 0xc8
call fcn.004634cc
mov word [edi], 0
cmp word [edi], 0x22
jne 0x53d018
mov eax, dword [ebx + 0x4e4]
mov eax, dword [eax + 0x20c]
mov edx, dword [eax + 0xc]
add edx, 0xc8
call fcn.004634cc
mov word [edi], 0
cmp dword [0x5671ec], 0
jle 0x53d496
cmp word [edi], 0x26
jne 0x53d034
mov dword [ebp - 0xc], 0xffffffff
jmp 0x53d05f
cmp word [edi], 0x28
jne 0x53d043
mov dword [ebp - 0xc], 1
jmp 0x53d05f
cmp word [edi], 0x25
jne 0x53d052
mov dword [ebp - 8], 0xffffffff
jmp 0x53d05f
cmp word [edi], 0x27
jne 0x53d05f
mov dword [ebp - 8], 1
cmp dword [ebp - 8], 0
jne 0x53d06f
cmp dword [ebp - 0xc], 0
je 0x53d496
test byte [ebp + 8], 4
je 0x53d089
push 0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.0053d4c4
jmp 0x53d496
test byte [ebp + 8], 1
je 0x53d0a3
push 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.0053d4c4
jmp 0x53d496
cmp dword [0x5671ec], 1
jne 0x53d496
call fcn.00535cb8
push eax
call fcn.00535b7c
pop edx
call fcn.004192d0
mov esi, eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x14], eax
mov edx, dword [esi + 0x98]
mov dword [ebp - 0x18], edx
add eax, dword [esi + 0x9c]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x98]
add eax, dword [esi + 0xa0]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], 0x2710
xor eax, eax
mov dword [ebp - 0x28], eax
call fcn.00535b7c
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x53d324
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0
call fcn.00535b7c
mov edx, dword [ebp - 0x10]
call fcn.004192d0
mov esi, eax
cmp byte [esi + 0x60], 0
jne 0x53d318
cmp byte [esi + 0x58], 2
je 0x53d318
mov eax, 0x2710
cmp dword [ebp - 8], 0
je 0x53d227
mov eax, dword [esi + 0x98]
mov edx, eax
add edx, dword [esi + 0xa0]
cmp edx, dword [ebp - 0x18]
jge 0x53d16f
mov eax, dword [esi + 0x98]
add eax, dword [esi + 0xa0]
push eax
mov eax, dword [ebp - 0x18]
pop edx
sub eax, edx
jmp 0x53d198
cmp eax, dword [ebp - 0x20]
jle 0x53d179
sub eax, dword [ebp - 0x20]
jmp 0x53d198
mov eax, dword [esi + 0x98]
cmp eax, dword [ebp - 0x18]
jg 0x53d195
mov edx, eax
add edx, dword [esi + 0xa0]
cmp edx, dword [ebp - 0x20]
jl 0x53d195
xor eax, eax
jmp 0x53d198
sub eax, dword [ebp - 0x18]
mov edx, dword [esi + 0x94]
cmp edx, dword [ebp - 0x14]
jg 0x53d1a9
cmp dword [ebp - 8], 1
je 0x53d1c0
mov edx, dword [esi + 0x94]
add edx, dword [esi + 0x9c]
cmp edx, dword [ebp - 0x1c]
jl 0x53d1c5
cmp dword [ebp - 8], 0xffffffff
jne 0x53d1c5
mov eax, 0x2710
cmp dword [ebp - 8], 1
jne 0x53d1ea
mov edx, dword [esi + 0x94]
cmp edx, dword [ebp - 0x1c]
jl 0x53d1e0
add eax, edx
sub eax, dword [ebp - 0x1c]
jmp 0x53d30d
add eax, edx
sub eax, dword [ebp - 0x14]
jmp 0x53d30d
mov edx, dword [esi + 0x94]
add edx, dword [esi + 0x9c]
cmp edx, dword [ebp - 0x14]
jg 0x53d211
mov edx, dword [esi + 0x94]
add edx, dword [esi + 0x9c]
add eax, dword [ebp - 0x14]
sub eax, edx
jmp 0x53d30d
mov edx, dword [esi + 0x94]
add edx, dword [esi + 0x9c]
add eax, dword [ebp - 0x1c]
sub eax, edx
jmp 0x53d30d
cmp dword [ebp - 0xc], 0
je 0x53d30d
mov eax, dword [esi + 0x94]
mov edx, eax
add edx, dword [esi + 0x9c]
cmp edx, dword [ebp - 0x14]
jge 0x53d259
mov eax, dword [esi + 0x94]
add eax, dword [esi + 0x9c]
push eax
mov eax, dword [ebp - 0x14]
pop edx
sub eax, edx
jmp 0x53d28c
cmp eax, dword [ebp - 0x1c]
jle 0x53d263
sub eax, dword [ebp - 0x1c]
jmp 0x53d28c
mov eax, dword [esi + 0x94]
cmp eax, dword [ebp - 0x14]
jg 0x53d283
mov eax, dword [esi + 0x94]
add eax, dword [esi + 0x9c]
cmp eax, dword [ebp - 0x1c]
jl 0x53d283
xor eax, eax
jmp 0x53d28c
mov eax, dword [esi + 0x94]
sub eax, dword [ebp - 0x14]
mov edx, dword [esi + 0x98]
cmp edx, dword [ebp - 0x18]
jg 0x53d29d
cmp dword [ebp - 0xc], 1
je 0x53d2b4
mov edx, dword [esi + 0x98]
add edx, dword [esi + 0xa0]
cmp edx, dword [ebp - 0x20]
jl 0x53d2b9
cmp dword [ebp - 0xc], 0xffffffff
jne 0x53d2b9
mov eax, 0x2710
cmp dword [ebp - 0xc], 1
jne 0x53d2d8
mov edx, dword [esi + 0x98]
cmp edx, dword [ebp - 0x20]
jl 0x53d2d1
add eax, edx
sub eax, dword [ebp - 0x20]
jmp 0x53d30d
add eax, edx
sub eax, dword [ebp - 0x18]
jmp 0x53d30d
mov edx, dword [esi + 0x98]
add edx, dword [esi + 0xa0]
cmp edx, dword [ebp - 0x18]
jg 0x53d2fc
mov edx, dword [esi + 0x98]
add edx, dword [esi + 0xa0]
add eax, dword [ebp - 0x18]
sub eax, edx
jmp 0x53d30d
mov edx, dword [esi + 0x98]
add edx, dword [esi + 0xa0]
add eax, dword [ebp - 0x20]
sub eax, edx
cmp eax, dword [ebp - 0x24]
jge 0x53d318
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], esi
inc dword [ebp - 0x10]
dec dword [ebp - 0x2c]
jne 0x53d115
cmp dword [ebp - 0x28], 0
je 0x53d496
call fcn.00535cb8
push eax
call fcn.00535b7c
pop edx
call fcn.004192d0
mov esi, eax
test byte [ebp + 8], 2
jne 0x53d37e
mov dl, 1
mov eax, dword [ebx + 0x59c]
call fcn.00536c94
mov eax, ebx
call fcn.0053cb78
mov dword [0x5671ec], 1
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x60], 1
mov dl, 1
mov eax, dword [ebx + 0x59c]
call fcn.00536c94
jmp 0x53d48f
mov ax, word [0x53d4c0]
and ax, word [0x5671e0]
mov dx, word [0x53d4bc]
cmp dx, ax
jne 0x53d48f
test byte [esi + 0xcc], 0x20
jne 0x53d48f
mov eax, dword [esi + 0x94]
add eax, dword [esi + 0x9c]
mov edx, dword [ebp - 0x28]
cmp eax, dword [edx + 0x94]
jg 0x53d3df
cmp word [edi], 0x27
jne 0x53d3df
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x94]
sub eax, dword [esi + 0x9c]
mov dword [esi + 0x94], eax
jmp 0x53d485
mov eax, dword [esi + 0x98]
add eax, dword [esi + 0xa0]
mov edx, dword [ebp - 0x28]
cmp eax, dword [edx + 0x98]
jge 0x53d413
cmp word [edi], 0x28
jne 0x53d413
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x98]
sub eax, dword [esi + 0xa0]
mov dword [esi + 0x98], eax
jmp 0x53d485
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x28]
add eax, dword [edx + 0x9c]
cmp eax, dword [esi + 0x94]
jg 0x53d44d
cmp word [edi], 0x25
jne 0x53d44d
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x28]
add eax, dword [edx + 0x9c]
mov dword [esi + 0x94], eax
jmp 0x53d485
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x28]
add eax, dword [edx + 0xa0]
cmp eax, dword [esi + 0x98]
jg 0x53d485
cmp word [edi], 0x26
jne 0x53d485
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x28]
add eax, dword [edx + 0xa0]
mov dword [esi + 0x98], eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x104]
mov eax, ebx
call fcn.0053dce8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53d4b3
lea eax, [ebp - 0x30]
call fcn.004048a8
ret