Function at 0x4181c0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor ebx, ebx
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x41851d
jmp 0x4181d7
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x41851d
cmp ecx, 0x29
jne 0x41820a
cmp dword [edi + 0x10], ebx
jne 0x41851d
test dword [edi + 0x44], edx
jne 0x41820a
push 5
call fcn.00494872
add esp, 4
jmp 0x41850a
cmp ecx, 0x2e
jne 0x4182a7
push 0x14
call fcn.004962bc
add esp, 4
cmp eax, ebx
je 0x418239
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x41823b
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x418257
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x41829b
cmp byte [eax], 0x5c
jne 0x418299
inc eax
cmp eax, ecx
je 0x418285
test byte [edi + 0x44], 8
jne 0x418285
mov cl, byte [eax]
cmp cl, 0x28
je 0x418297
cmp cl, 0x29
je 0x418297
test byte [edi + 0x44], 0x10
jne 0x418299
mov cl, byte [eax]
cmp cl, 0x7b
je 0x418297
cmp cl, 0x7d
jne 0x418299
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00417890
jmp 0x41850a
cmp ecx, 0x5c
jne 0x4183bd
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4182eb
cmp byte [eax], 0x5c
jne 0x4182e9
inc eax
cmp eax, ecx
je 0x4182d5
test byte [edi + 0x44], 8
jne 0x4182d5
mov cl, byte [eax]
cmp cl, 0x28
je 0x4182e7
cmp cl, 0x29
je 0x4182e7
test byte [edi + 0x44], 0x10
jne 0x4182e9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4182e7
cmp cl, 0x7d
jne 0x4182e9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00417890
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x418351
cmp byte [edi + 0x3e], 0x62
jne 0x418351
lea esi, [edi + 0x18]
call fcn.00419040
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x418345
cmp byte [eax], 0x5c
jne 0x418343
inc eax
cmp eax, ecx
je 0x41832f
test byte [edi + 0x44], 8
jne 0x41832f
mov cl, byte [eax]
cmp cl, 0x28
je 0x418341
cmp cl, 0x29
je 0x418341
test byte [edi + 0x44], 0x10
jne 0x418343
mov cl, byte [eax]
cmp cl, 0x7b
je 0x418341
cmp cl, 0x7d
jne 0x418343
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00417890
jmp 0x418511
cmp eax, ebx
je 0x4183b1
cmp byte [edi + 0x3e], 0x42
jne 0x4183b1
lea esi, [edi + 0x18]
call fcn.00419040
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4183a5
cmp byte [eax], 0x5c
jne 0x4183a3
inc eax
cmp eax, ecx
je 0x41838f
test byte [edi + 0x44], 8
jne 0x41838f
mov cl, byte [eax]
cmp cl, 0x28
je 0x4183a1
cmp cl, 0x29
je 0x4183a1
test byte [edi + 0x44], 0x10
jne 0x4183a3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4183a1
cmp cl, 0x7d
jne 0x4183a3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00417890
jmp 0x418511
mov eax, edi
call fcn.00418d50
jmp 0x41850a
cmp ecx, 0x5b
jne 0x418462
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x418401
cmp byte [eax], 0x5c
jne 0x4183ff
inc eax
cmp eax, ecx
je 0x4183eb
test byte [edi + 0x44], 8
jne 0x4183eb
mov cl, byte [eax]
cmp cl, 0x28
je 0x4183fd
cmp cl, 0x29
je 0x4183fd
test byte [edi + 0x44], 0x10
jne 0x4183ff
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4183fd
cmp cl, 0x7d
jne 0x4183ff
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00417890
call fcn.00418ca0
cmp dword [edi + 0x40], 0x5d
je 0x41841d
push 4
call fcn.00494872
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x418458
cmp byte [eax], 0x5c
jne 0x418456
inc eax
cmp eax, ecx
je 0x418442
test byte [edi + 0x44], 8
jne 0x418442
mov cl, byte [eax]
cmp cl, 0x28
je 0x418454
cmp cl, 0x29
je 0x418454
test byte [edi + 0x44], 0x10
jne 0x418456
mov cl, byte [eax]
cmp cl, 0x7b
je 0x418454
cmp cl, 0x7d
jne 0x418456
mov dword [edi], eax
inc dword [edi]
call fcn.00417890
jmp 0x41850a
cmp ecx, 0x28
jne 0x418521
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4184a6
cmp byte [eax], 0x5c
jne 0x4184a4
inc eax
cmp eax, ecx
je 0x418490
test byte [edi + 0x44], 8
jne 0x418490
mov cl, byte [eax]
cmp cl, 0x28
je 0x4184a2
cmp cl, 0x29
je 0x4184a2
test byte [edi + 0x44], 0x10
jne 0x4184a4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4184a2
cmp cl, 0x7d
jne 0x4184a4
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00417890
mov eax, edi
call fcn.00418e10
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x4184c6
push 5
call fcn.00494872
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x418501
cmp byte [eax], 0x5c
jne 0x4184ff
inc eax
cmp eax, ecx
je 0x4184eb
test byte [edi + 0x44], 8
jne 0x4184eb
mov cl, byte [eax]
cmp cl, 0x28
je 0x4184fd
cmp cl, 0x29
je 0x4184fd
test byte [edi + 0x44], 0x10
jne 0x4184ff
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4184fd
cmp cl, 0x7d
jne 0x4184ff
mov dword [edi], eax
inc dword [edi]
call fcn.00417890
test bl, bl
je 0x418511
mov eax, edi
call fcn.00418ec0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x4181d5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x418537
lea esi, [edi + 0x18]
call fcn.00418ff0
mov eax, edi
call fcn.00418170
jmp 0x418511
cmp ecx, 0x24
jne 0x41854d
lea esi, [edi + 0x18]
call fcn.004075f0
mov eax, edi
call fcn.00418170
jmp 0x418511
cmp ecx, 0x2a
je 0x4185a9
cmp ecx, 0x2b
je 0x4185a9
cmp ecx, 0x3f
je 0x4185a9
cmp ecx, 0x7b
je 0x4185a9
cmp ecx, 0x7d
jne 0x418577
test dword [edi + 0x44], edx
jne 0x418577
push 6
call fcn.00494872
add esp, 4
jmp 0x41850a
cmp ecx, 0x5d
jne 0x418590
test dword [edi + 0x44], edx
jne 0x418590
push 4
call fcn.00494872
add esp, 4
jmp 0x41850a
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.00407640
mov eax, edi
call fcn.00418170
jmp 0x41850a
push 0xa
call fcn.00494872
add esp, 4
jmp 0x41850a