Function at 0x420fd0
Capabilities:
Parse credit card information

Disassembly:
push ecx
mov eax, dword [edi]
fldz
cmp dword [eax + 0x7f8], 0x13
push ebx
push esi
jne 0x421039
mov dword [edi + 0x58], 0x64
cmp byte [eax + 0x8c5], 0
jne 0x421039
mov ecx, dword [0x6ba020]
fst dword [esp + 8]
fcomp dword [ecx + 0x9f8]
mov esi, dword [eax + 0x784]
fnstsw ax
test ah, 0x44
jnp 0x421023
fld dword [ecx + 0x9f8]
push ecx
fstp dword [esp]
call fcn.005b57c0
fstp dword [esp + 0xc]
add esp, 4
fld dword [esp + 8]
push ecx
mov eax, 0x31
fstp dword [esp]
mov ecx, esi
call fcn.005192b0
fldz
mov eax, dword [edi]
cmp dword [eax + 0x768], 0
je 0x4210bf
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x2f
je 0x42105f
test ecx, ecx
jne 0x4210bf
mov ecx, dword [eax + 0x82c]
cmp dword [ecx + 0x24], 0x28
jne 0x4210bf
mov dword [edi + 0x54], 6
mov dword [edi + 0x58], 0x96
cmp byte [eax + 0x8c5], 0
jne 0x4210bf
mov ecx, dword [0x6ba020]
fst dword [esp + 8]
fcomp dword [ecx + 0x9f8]
mov esi, dword [eax + 0x784]
fnstsw ax
test ah, 0x44
jnp 0x4210a9
fld dword [ecx + 0x9f8]
push ecx
fstp dword [esp]
call fcn.005b57c0
fstp dword [esp + 0xc]
add esp, 4
fld dword [esp + 8]
push ecx
mov eax, 0x31
fstp dword [esp]
mov ecx, esi
call fcn.005192b0
jmp 0x4210c1
fstp st(0)
mov eax, dword [edi]
cmp dword [eax + 0x768], 0
mov ebx, 0x3e8
je 0x42112f
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x23
je 0x4210ec
test ecx, ecx
jne 0x42112f
mov edx, dword [eax + 0x82c]
cmp dword [edx + 0x24], 0x32
jne 0x42112f
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0x20
call fcn.0048d7c0
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x144]
push 0x14
call fcn.0048d7c0
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0x20
call fcn.0048d7c0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0xe
call fcn.0048d7c0
mov dword [edi + 0x5c], ebx
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x2b
jne 0x421154
mov ecx, dword [eax + 0x81c]
mov dword [ecx + 8], 0
mov edx, dword [edi]
mov esi, dword [edx + 0x81c]
call fcn.00521a10
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x1b
jne 0x4211c2
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x144]
push 4
call fcn.0048d7c0
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0x17
call fcn.0048d7c0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0x27
call fcn.0048d7c0
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x144]
push 0x1f
call fcn.0048d7c0
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0x23
call fcn.0048d7c0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0x27
call fcn.0048d7c0
mov dword [edi + 0x5c], ebx
mov ecx, dword [edi]
cmp dword [ecx + 0x7f8], 0x15
jne 0x4211f0
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x144]
push 0
call fcn.0048d7c0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x144]
push 0xe
call fcn.0048d7c0
mov dword [edi + 0x5c], ebx
mov eax, dword [edi]
cmp dword [eax + 0x768], 0
je 0x421239
mov eax, dword [eax + 0x7f8]
cmp eax, 0x3d
je 0x421233
cmp eax, 0x3e
je 0x421233
cmp eax, 0x3f
je 0x421233
cmp eax, 0x40
je 0x421233
cmp eax, 0x41
je 0x421233
cmp eax, 0x42
je 0x421233
cmp eax, 0x43
je 0x421233
cmp eax, 0x44
je 0x421233
cmp eax, 0x45
je 0x421233
cmp eax, 0x46
jne 0x421239
push edi
call fcn.0042c500
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7f8]
cmp eax, 0x33
jl 0x42124b
cmp eax, 0x3c
jle 0x42125b
test eax, eax
jne 0x421262
mov ecx, dword [ecx + 0x82c]
cmp dword [ecx + 0x24], 0x23
jne 0x421262
mov esi, edi
call fcn.0042a370
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0
jne 0x4212fa
mov eax, dword [eax + 0x82c]
test eax, eax
je 0x421281
cmp dword [eax + 0x2c], 0
jg 0x4212fa
mov eax, dword [edi + 4]
cmp dword [eax + 0x5550], 5
jne 0x4212fa
lea esi, [eax + 0xac]
call fcn.0041f7f0
push 0xffffffffffffffff
mov ebx, 1
push 0
mov byte [eax + 0x144], bl
push eax
mov eax, ebx
lea ecx, [ebx + 4]
call fcn.00461330
mov eax, dword [edi + 4]
lea esi, [eax + 0xac]
call fcn.0041f7f0
push 0xffffffffffffffff
push 0
mov byte [eax + 0x144], bl
push eax
lea eax, [ebx + 1]
lea ecx, [ebx + 6]
call fcn.00461330
mov eax, dword [edi + 4]
lea esi, [eax + 0xac]
call fcn.0041f7f0
push 0xffffffffffffffff
push 0
mov byte [eax + 0x144], bl
push eax
lea eax, [ebx + 2]
lea ecx, [ebx + 5]
call fcn.00461330
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x18
jne 0x421319
mov dword [edi + 0xa8], 0xffffffff
mov dword [edi + 0xac], 0xffffffff
cmp dword [eax + 0x7f8], 0x32
jne 0x421328
push edi
call fcn.0042eb80
pop esi
pop ebx
pop ecx
ret