Function at 0x514110
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5755f0
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
mov eax, dword [0x5d8024]
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 0x5141ed
cmp eax, 0x7c
je 0x5141ed
cmp eax, 0x29
jne 0x514200
cmp dword [esi + 0x10], 0
jne 0x5141ed
test dword [esi + 0x50], 0x10000000
je 0x514640
cmp eax, 0x5d
jne 0x514182
test dword [esi + 0x50], 0x10000000
je 0x514632
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00516000
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x5141d1
cmp word [eax], 0x5c
jne 0x5141ce
add eax, 2
cmp eax, ecx
je 0x5141ce
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x5141ba
movzx edx, word [eax]
cmp edx, 0x28
je 0x5141cc
cmp edx, 0x29
je 0x5141cc
test cl, 0x10
jne 0x5141ce
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x5141cc
cmp ecx, 0x7d
jne 0x5141ce
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00512a60
mov ecx, esi
call fcn.00515dc0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x514147
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 0x51426e
push 0x14
call fcn.00521dee
mov ecx, eax
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
mov dword [ecx], 0x59d0b0
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 0x514263
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 0x51418f
cmp eax, 0x5c
jne 0x514402
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x5142b9
cmp word [eax], 0x5c
jne 0x5142b6
add eax, 2
cmp eax, ecx
je 0x5142b6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x5142a2
movzx edx, word [eax]
cmp edx, 0x28
je 0x5142b4
cmp edx, 0x29
je 0x5142b4
test cl, 0x10
jne 0x5142b6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x5142b4
cmp ecx, 0x7d
jne 0x5142b6
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00512a60
test byte [esi + 0x50], 0x80
je 0x5143f6
cmp word [esi + 0x48], 0x62
jne 0x514380
push 0x14
call fcn.00521dee
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 1
mov dword [ecx], 0x59d0b0
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 0x514333
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 0x5145f4
cmp word [eax], 0x5c
jne 0x5145f1
add eax, 2
cmp eax, ecx
je 0x5145f1
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x514378
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x5145ef
cmp ecx, 0x29
je 0x5145ef
test dl, 0x10
jmp 0x5145e0
cmp word [esi + 0x48], 0x42
jne 0x5143f6
push 0x14
call fcn.00521dee
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 2
mov dword [ecx], 0x59d0b0
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 0x5143e5
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 0x514339
mov ecx, esi
call fcn.00515ab0
jmp 0x5141d8
cmp eax, 0x5b
jne 0x514466
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x514449
cmp word [eax], 0x5c
jne 0x514446
add eax, 2
cmp eax, ecx
je 0x514446
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x514432
movzx edx, word [eax]
cmp edx, 0x28
je 0x514444
cmp edx, 0x29
je 0x514444
test cl, 0x10
jne 0x514446
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x514444
cmp ecx, 0x7d
jne 0x514446
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00512a60
mov ecx, esi
call fcn.005159d0
cmp dword [esi + 0x4c], 0x5d
jne 0x514632
jmp 0x51418f
cmp eax, 0x28
jne 0x514521
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x5144b1
cmp word [eax], 0x5c
jne 0x5144ae
add eax, 2
cmp eax, ecx
je 0x5144ae
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x51449a
movzx edx, word [eax]
cmp edx, 0x28
je 0x5144ac
cmp edx, 0x29
je 0x5144ac
test cl, 0x10
jne 0x5144ae
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x5144ac
cmp ecx, 0x7d
jne 0x5144ae
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00512a60
mov ecx, esi
call fcn.00515c40
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x514640
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51450d
cmp word [eax], 0x5c
jne 0x51450a
add eax, 2
cmp eax, ecx
je 0x51450a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x5144f6
movzx edx, word [eax]
cmp edx, 0x28
je 0x514508
cmp edx, 0x29
je 0x514508
test cl, 0x10
jne 0x51450a
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x514508
cmp ecx, 0x7d
jne 0x51450a
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00512a60
test bl, bl
je 0x5141df
jmp 0x5141d8
cmp eax, 0x5e
jne 0x514545
push 0x14
call fcn.00521dee
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 3
mov dword [ecx + 4], 2
jmp 0x51456b
cmp eax, 0x24
jne 0x514600
push 0x14
call fcn.00521dee
mov ecx, eax
add esp, 4
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], 4
mov dword [ecx + 4], 3
mov dword [ecx], 0x59d0b0
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 0x5145ac
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 0x5145f4
cmp word [eax], 0x5c
jne 0x5145f1
add eax, 2
cmp eax, ecx
je 0x5145f1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x5145dd
movzx edx, word [eax]
cmp edx, 0x28
je 0x5145ef
cmp edx, 0x29
je 0x5145ef
test cl, 0x10
jne 0x5145f1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x5145ef
cmp ecx, 0x7d
jne 0x5145f1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00512a60
jmp 0x5141df
cmp eax, 0x2a
je 0x51462b
cmp eax, 0x2b
je 0x51462b
cmp eax, 0x3f
je 0x51462b
cmp eax, 0x7b
je 0x51462b
cmp eax, 0x7d
jne 0x514170
test dword [esi + 0x50], 0x10000000
je 0x514639
jmp 0x514182
push 0xa
call fcn.00512a50
push 4
call fcn.00512a50
push 6
call fcn.00512a50
push 5
call fcn.00512a50
int3