Function at 0x41f380
Capabilities:
Parse credit card information

Disassembly:
push ecx
mov eax, dword [edi]
fldz
cmp dword [eax + 0x7f8], 0x13
push ebx
push esi
jne 0x41f3e9
mov dword [edi + 0x58], 0x64
cmp byte [eax + 0x8c5], 0
jne 0x41f3e9
mov ecx, dword [0x6a9f00]
fst dword [esp + 8]
fcomp dword [ecx + 0x9f8]
mov esi, dword [eax + 0x784]
fnstsw ax
test ah, 0x44
jnp 0x41f3d3
fld dword [ecx + 0x9f8]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0xc]
add esp, 4
fld dword [esp + 8]
push ecx
mov eax, 0x31
fstp dword [esp]
mov ecx, esi
call fcn.00515020
fldz
mov eax, dword [edi]
cmp dword [eax + 0x768], 0
je 0x41f46f
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x2f
je 0x41f40f
test ecx, ecx
jne 0x41f46f
mov ecx, dword [eax + 0x82c]
cmp dword [ecx + 0x24], 0x28
jne 0x41f46f
mov dword [edi + 0x54], 6
mov dword [edi + 0x58], 0x96
cmp byte [eax + 0x8c5], 0
jne 0x41f46f
mov ecx, dword [0x6a9f00]
fst dword [esp + 8]
fcomp dword [ecx + 0x9f8]
mov esi, dword [eax + 0x784]
fnstsw ax
test ah, 0x44
jnp 0x41f459
fld dword [ecx + 0x9f8]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0xc]
add esp, 4
fld dword [esp + 8]
push ecx
mov eax, 0x31
fstp dword [esp]
mov ecx, esi
call fcn.00515020
jmp 0x41f471
fstp st(0)
mov eax, dword [edi]
cmp dword [eax + 0x768], 0
mov ebx, 0x3e8
je 0x41f4df
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x23
je 0x41f49c
test ecx, ecx
jne 0x41f4df
mov edx, dword [eax + 0x82c]
cmp dword [edx + 0x24], 0x3c
jne 0x41f4df
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0x20
call fcn.00489a50
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x144]
push 0x14
call fcn.00489a50
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0x20
call fcn.00489a50
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0xe
call fcn.00489a50
mov dword [edi + 0x5c], ebx
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x2b
jne 0x41f504
mov ecx, dword [eax + 0x81c]
mov dword [ecx + 8], 0
mov edx, dword [edi]
mov esi, dword [edx + 0x81c]
call fcn.0051d630
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x1b
jne 0x41f572
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x144]
push 4
call fcn.00489a50
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0x17
call fcn.00489a50
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0x27
call fcn.00489a50
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x144]
push 0x1f
call fcn.00489a50
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0x23
call fcn.00489a50
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0x27
call fcn.00489a50
mov dword [edi + 0x5c], ebx
mov ecx, dword [edi]
cmp dword [ecx + 0x7f8], 0x15
jne 0x41f5a0
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0
call fcn.00489a50
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0xe
call fcn.00489a50
mov dword [edi + 0x5c], ebx
mov eax, dword [edi]
cmp dword [eax + 0x768], 0
je 0x41f5e9
mov eax, dword [eax + 0x7f8]
cmp eax, 0x3d
je 0x41f5e3
cmp eax, 0x3e
je 0x41f5e3
cmp eax, 0x3f
je 0x41f5e3
cmp eax, 0x40
je 0x41f5e3
cmp eax, 0x41
je 0x41f5e3
cmp eax, 0x42
je 0x41f5e3
cmp eax, 0x43
je 0x41f5e3
cmp eax, 0x44
je 0x41f5e3
cmp eax, 0x45
je 0x41f5e3
cmp eax, 0x46
jne 0x41f5e9
push edi
call fcn.0042a890
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7f8]
cmp eax, 0x33
jl 0x41f5fb
cmp eax, 0x3c
jle 0x41f60b
test eax, eax
jne 0x41f612
mov ecx, dword [ecx + 0x82c]
cmp dword [ecx + 0x24], 0x23
jne 0x41f612
mov esi, edi
call fcn.004286f0
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0
jne 0x41f6aa
mov eax, dword [eax + 0x82c]
test eax, eax
je 0x41f631
cmp dword [eax + 0x2c], 0
jg 0x41f6aa
mov eax, dword [edi + 4]
cmp dword [eax + 0x5550], 5
jne 0x41f6aa
lea esi, [eax + 0xac]
call fcn.0041de80
push 0xffffffffffffffff
mov ebx, 1
push 0
mov byte [eax + 0x144], bl
push eax
mov eax, ebx
lea ecx, [ebx + 4]
call fcn.0045db60
mov eax, dword [edi + 4]
lea esi, [eax + 0xac]
call fcn.0041de80
push 0xffffffffffffffff
push 0
mov byte [eax + 0x144], bl
push eax
lea eax, [ebx + 1]
lea ecx, [ebx + 6]
call fcn.0045db60
mov eax, dword [edi + 4]
lea esi, [eax + 0xac]
call fcn.0041de80
push 0xffffffffffffffff
push 0
mov byte [eax + 0x144], bl
push eax
lea eax, [ebx + 2]
lea ecx, [ebx + 5]
call fcn.0045db60
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x18
jne 0x41f6c9
mov dword [edi + 0xa8], 0xffffffff
mov dword [edi + 0xac], 0xffffffff
cmp dword [eax + 0x7f8], 0x32
jne 0x41f6d8
push edi
call fcn.0042cee0
pop esi
pop ebx
pop ecx
ret