Function at 0x4102c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, eax
push esi
xor al, al
cmp dword [ebx + 0x40], 0xffff
push edi
je 0x4105c7
lea ebx, [ebx]
mov ecx, dword [ebx + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x4105c7
cmp ecx, 0x29
jne 0x410314
cmp dword [ebx + 0x10], 0
jne 0x4105c7
test dword [ebx + 0x44], edx
jne 0x410314
push 5
call fcn.004523dc
add esp, 4
jmp 0x4105b1
cmp ecx, 0x2e
jne 0x4103d5
push 0x14
call fcn.00453347
xor edx, edx
add esp, 4
cmp eax, edx
je 0x410345
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
jmp 0x410347
xor eax, eax
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, edx
je 0x410363
mov dword [eax + 0xc], ecx
mov edx, dword [ebx + 0x1c]
mov ecx, dword [edx + 0xc]
mov dword [ecx + 0x10], eax
mov edx, dword [ebx + 0x1c]
mov dword [edx + 0xc], eax
mov dword [ebx + 0x1c], eax
mov esi, dword [ebx]
mov edi, dword [ebx + 8]
cmp esi, edi
je 0x4103c9
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x4103c6
add esi, 2
mov eax, esi
mov dword [ebp - 8], eax
cmp eax, edi
je 0x4103a9
test byte [ebx + 0x44], 8
jne 0x4103a9
lea eax, [ebp - 8]
call fcn.004060e6
movzx eax, word [eax]
cmp eax, 0x28
je 0x4103c4
cmp eax, 0x29
je 0x4103c4
test byte [ebx + 0x44], 0x10
jne 0x4103c6
lea eax, [ebp - 8]
call fcn.004060e6
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4103c4
cmp eax, 0x7d
jne 0x4103c6
mov dword [ebx], esi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
jmp 0x4105b1
cmp ecx, 0x5c
jne 0x4104b1
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410405
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x410402
mov esi, ebx
call fcn.00410230
test al, al
je 0x410402
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
mov eax, dword [ebx + 0x44]
and eax, 0x80
je 0x410458
cmp word [ebx + 0x3e], 0x62
jne 0x410458
lea esi, [ebx + 0x18]
call fcn.004114e0
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x41044c
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x410449
mov esi, ebx
call fcn.00410230
test al, al
je 0x410449
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
jmp 0x4105b8
test eax, eax
je 0x4104a5
cmp word [ebx + 0x3e], 0x42
jne 0x4104a5
lea esi, [ebx + 0x18]
call fcn.004114e0
mov eax, dword [ebx + 0x1c]
xor dword [eax + 8], 1
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410499
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x410496
mov esi, ebx
call fcn.00410230
test al, al
je 0x410496
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
jmp 0x4105b8
mov eax, ebx
call fcn.00411120
jmp 0x4105b1
cmp ecx, 0x5b
jne 0x41052c
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x4104dd
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x4104da
mov esi, ebx
call fcn.00410230
test al, al
je 0x4104da
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
call fcn.00411070
cmp dword [ebx + 0x40], 0x5d
je 0x4104f9
push 4
call fcn.004523dc
add esp, 4
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410520
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x41051d
mov esi, ebx
call fcn.00410230
test al, al
je 0x41051d
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
jmp 0x4105b1
cmp ecx, 0x28
jne 0x4105ce
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x41055c
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x410559
mov esi, ebx
call fcn.00410230
test al, al
je 0x410559
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
mov eax, ebx
call fcn.004111e0
cmp dword [ebx + 0x40], 0x29
mov byte [ebp - 1], al
je 0x41057d
push 5
call fcn.004523dc
add esp, 4
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x4105a4
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x4105a1
mov esi, ebx
call fcn.00410230
test al, al
je 0x4105a1
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
cmp byte [ebp - 1], 0
je 0x4105b8
mov eax, ebx
call fcn.004112e0
cmp dword [ebx + 0x40], 0xffff
mov al, 1
jne 0x4102e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5e
jne 0x41060b
lea esi, [ebx + 0x18]
call fcn.00411440
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410602
mov eax, ebx
call fcn.004060e6
cmp word [eax], 0x5c
jne 0x4105ff
mov esi, ebx
call fcn.00410230
test al, al
je 0x4105ff
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eb90
jmp 0x4105b8
cmp ecx, 0x24
jne 0x410621
lea esi, [ebx + 0x18]
call fcn.00411490
mov eax, ebx
call fcn.00410290
jmp 0x4105b8
cmp ecx, 0x2a
je 0x410680
cmp ecx, 0x2b
je 0x410680
cmp ecx, 0x3f
je 0x410680
cmp ecx, 0x7b
je 0x410680
cmp ecx, 0x7d
jne 0x41064e
test dword [ebx + 0x44], edx
jne 0x41064e
push 6
call fcn.004523dc
add esp, 4
jmp 0x4105b1
cmp ecx, 0x5d
jne 0x410667
test dword [ebx + 0x44], edx
jne 0x410667
push 4
call fcn.004523dc
add esp, 4
jmp 0x4105b1
movzx eax, word [ebx + 0x3e]
lea ecx, [ebx + 0x18]
push eax
call fcn.00410af0
mov eax, ebx
call fcn.00410290
jmp 0x4105b1
push 0xa
call fcn.004523dc
add esp, 4
jmp 0x4105b1