Function at 0x51d2c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x583c20
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
mov eax, dword [0x5e8024]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x4c]
xor cl, cl
cmp eax, 0xffffffff
je 0x51d39d
cmp eax, 0x7c
je 0x51d39d
cmp eax, 0x29
jne 0x51d3b0
cmp dword [esi + 0x10], 0
jne 0x51d39d
test dword [esi + 0x50], 0x10000000
je 0x51d7f0
cmp eax, 0x5d
jne 0x51d332
test dword [esi + 0x50], 0x10000000
je 0x51d7e2
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0051f1b0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x51d381
cmp word [eax], 0x5c
jne 0x51d37e
add eax, 2
cmp eax, ecx
je 0x51d37e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51d36a
movzx edx, word [eax]
cmp edx, 0x28
je 0x51d37c
cmp edx, 0x29
je 0x51d37c
test cl, 0x10
jne 0x51d37e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x51d37c
cmp ecx, 0x7d
jne 0x51d37e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0051bce0
mov ecx, esi
call fcn.0051ef70
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x51d2f7
mov al, cl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2e
jne 0x51d41e
push 0x14
call fcn.0052df96
mov ecx, eax
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
mov dword [ecx], 0x5ab3e0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x51d413
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
jmp 0x51d33f
cmp eax, 0x5c
jne 0x51d5b2
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51d469
cmp word [eax], 0x5c
jne 0x51d466
add eax, 2
cmp eax, ecx
je 0x51d466
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51d452
movzx edx, word [eax]
cmp edx, 0x28
je 0x51d464
cmp edx, 0x29
je 0x51d464
test cl, 0x10
jne 0x51d466
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x51d464
cmp ecx, 0x7d
jne 0x51d466
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0051bce0
test byte [esi + 0x50], 0x80
je 0x51d5a6
cmp word [esi + 0x48], 0x62
jne 0x51d530
push 0x14
call fcn.0052df96
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 1
mov dword [ecx], 0x5ab3e0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x51d4e3
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51d7a4
cmp word [eax], 0x5c
jne 0x51d7a1
add eax, 2
cmp eax, ecx
je 0x51d7a1
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x51d528
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x51d79f
cmp ecx, 0x29
je 0x51d79f
test dl, 0x10
jmp 0x51d790
cmp word [esi + 0x48], 0x42
jne 0x51d5a6
push 0x14
call fcn.0052df96
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 2
mov dword [ecx], 0x5ab3e0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x51d595
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x51d4e9
mov ecx, esi
call fcn.0051ec60
jmp 0x51d388
cmp eax, 0x5b
jne 0x51d616
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51d5f9
cmp word [eax], 0x5c
jne 0x51d5f6
add eax, 2
cmp eax, ecx
je 0x51d5f6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51d5e2
movzx edx, word [eax]
cmp edx, 0x28
je 0x51d5f4
cmp edx, 0x29
je 0x51d5f4
test cl, 0x10
jne 0x51d5f6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x51d5f4
cmp ecx, 0x7d
jne 0x51d5f6
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0051bce0
mov ecx, esi
call fcn.0051eb80
cmp dword [esi + 0x4c], 0x5d
jne 0x51d7e2
jmp 0x51d33f
cmp eax, 0x28
jne 0x51d6d1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51d661
cmp word [eax], 0x5c
jne 0x51d65e
add eax, 2
cmp eax, ecx
je 0x51d65e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51d64a
movzx edx, word [eax]
cmp edx, 0x28
je 0x51d65c
cmp edx, 0x29
je 0x51d65c
test cl, 0x10
jne 0x51d65e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x51d65c
cmp ecx, 0x7d
jne 0x51d65e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0051bce0
mov ecx, esi
call fcn.0051edf0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x51d7f0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51d6bd
cmp word [eax], 0x5c
jne 0x51d6ba
add eax, 2
cmp eax, ecx
je 0x51d6ba
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51d6a6
movzx edx, word [eax]
cmp edx, 0x28
je 0x51d6b8
cmp edx, 0x29
je 0x51d6b8
test cl, 0x10
jne 0x51d6ba
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x51d6b8
cmp ecx, 0x7d
jne 0x51d6ba
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0051bce0
test bl, bl
je 0x51d38f
jmp 0x51d388
cmp eax, 0x5e
jne 0x51d6f5
push 0x14
call fcn.0052df96
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 3
mov dword [ecx + 4], 2
jmp 0x51d71b
cmp eax, 0x24
jne 0x51d7b0
push 0x14
call fcn.0052df96
mov ecx, eax
add esp, 4
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], 4
mov dword [ecx + 4], 3
mov dword [ecx], 0x5ab3e0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x51d75c
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x51d7a4
cmp word [eax], 0x5c
jne 0x51d7a1
add eax, 2
cmp eax, ecx
je 0x51d7a1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51d78d
movzx edx, word [eax]
cmp edx, 0x28
je 0x51d79f
cmp edx, 0x29
je 0x51d79f
test cl, 0x10
jne 0x51d7a1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x51d79f
cmp ecx, 0x7d
jne 0x51d7a1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0051bce0
jmp 0x51d38f
cmp eax, 0x2a
je 0x51d7db
cmp eax, 0x2b
je 0x51d7db
cmp eax, 0x3f
je 0x51d7db
cmp eax, 0x7b
je 0x51d7db
cmp eax, 0x7d
jne 0x51d320
test dword [esi + 0x50], 0x10000000
je 0x51d7e9
jmp 0x51d332
push 0xa
call fcn.0051bcd0
push 4
call fcn.0051bcd0
push 6
call fcn.0051bcd0
push 5
call fcn.0051bcd0
int3