Function at 0x4101f0
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 0x4104f7
lea ebx, [ebx]
mov ecx, dword [ebx + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x4104f7
cmp ecx, 0x29
jne 0x410244
cmp dword [ebx + 0x10], 0
jne 0x4104f7
test dword [ebx + 0x44], edx
jne 0x410244
push 5
call fcn.0045228d
add esp, 4
jmp 0x4104e1
cmp ecx, 0x2e
jne 0x410305
push 0x14
call fcn.00453217
xor edx, edx
add esp, 4
cmp eax, edx
je 0x410275
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 0x410277
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 0x410293
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 0x4102f9
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x4102f6
add esi, 2
mov eax, esi
mov dword [ebp - 8], eax
cmp eax, edi
je 0x4102d9
test byte [ebx + 0x44], 8
jne 0x4102d9
lea eax, [ebp - 8]
call fcn.00404f2e
movzx eax, word [eax]
cmp eax, 0x28
je 0x4102f4
cmp eax, 0x29
je 0x4102f4
test byte [ebx + 0x44], 0x10
jne 0x4102f6
lea eax, [ebp - 8]
call fcn.00404f2e
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4102f4
cmp eax, 0x7d
jne 0x4102f6
mov dword [ebx], esi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
jmp 0x4104e1
cmp ecx, 0x5c
jne 0x4103e1
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410335
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x410332
mov esi, ebx
call fcn.00410160
test al, al
je 0x410332
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
mov eax, dword [ebx + 0x44]
and eax, 0x80
je 0x410388
cmp word [ebx + 0x3e], 0x62
jne 0x410388
lea esi, [ebx + 0x18]
call fcn.00410a70
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x41037c
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x410379
mov esi, ebx
call fcn.00410160
test al, al
je 0x410379
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
jmp 0x4104e8
test eax, eax
je 0x4103d5
cmp word [ebx + 0x3e], 0x42
jne 0x4103d5
lea esi, [ebx + 0x18]
call fcn.00410a70
mov eax, dword [ebx + 0x1c]
xor dword [eax + 8], 1
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x4103c9
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x4103c6
mov esi, ebx
call fcn.00410160
test al, al
je 0x4103c6
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
jmp 0x4104e8
mov eax, ebx
call fcn.00410f20
jmp 0x4104e1
cmp ecx, 0x5b
jne 0x41045c
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x41040d
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x41040a
mov esi, ebx
call fcn.00410160
test al, al
je 0x41040a
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
call fcn.00410e70
cmp dword [ebx + 0x40], 0x5d
je 0x410429
push 4
call fcn.0045228d
add esp, 4
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410450
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x41044d
mov esi, ebx
call fcn.00410160
test al, al
je 0x41044d
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
jmp 0x4104e1
cmp ecx, 0x28
jne 0x4104fe
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x41048c
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x410489
mov esi, ebx
call fcn.00410160
test al, al
je 0x410489
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
mov eax, ebx
call fcn.00410fe0
cmp dword [ebx + 0x40], 0x29
mov byte [ebp - 1], al
je 0x4104ad
push 5
call fcn.0045228d
add esp, 4
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x4104d4
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x4104d1
mov esi, ebx
call fcn.00410160
test al, al
je 0x4104d1
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
cmp byte [ebp - 1], 0
je 0x4104e8
mov eax, ebx
call fcn.004110e0
cmp dword [ebx + 0x40], 0xffff
mov al, 1
jne 0x410210
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5e
jne 0x41053b
lea esi, [ebx + 0x18]
call fcn.00410a20
mov edi, dword [ebx]
cmp edi, dword [ebx + 8]
je 0x410532
mov eax, ebx
call fcn.00404f2e
cmp word [eax], 0x5c
jne 0x41052f
mov esi, ebx
call fcn.00410160
test al, al
je 0x41052f
add edi, 2
mov dword [ebx], edi
add dword [ebx], 2
mov eax, ebx
call fcn.0040eac0
jmp 0x4104e8
cmp ecx, 0x24
jne 0x410551
lea esi, [ebx + 0x18]
call fcn.00411240
mov eax, ebx
call fcn.004101c0
jmp 0x4104e8
cmp ecx, 0x2a
je 0x4105b0
cmp ecx, 0x2b
je 0x4105b0
cmp ecx, 0x3f
je 0x4105b0
cmp ecx, 0x7b
je 0x4105b0
cmp ecx, 0x7d
jne 0x41057e
test dword [ebx + 0x44], edx
jne 0x41057e
push 6
call fcn.0045228d
add esp, 4
jmp 0x4104e1
cmp ecx, 0x5d
jne 0x410597
test dword [ebx + 0x44], edx
jne 0x410597
push 4
call fcn.0045228d
add esp, 4
jmp 0x4104e1
movzx eax, word [ebx + 0x3e]
lea ecx, [ebx + 0x18]
push eax
call fcn.00411290
mov eax, ebx
call fcn.004101c0
jmp 0x4104e1
push 0xa
call fcn.0045228d
add esp, 4
jmp 0x4104e1