Function at 0x45ec20
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x45f067
push ebx
push edi
call fcn.00488f50
push edi
call fcn.0045d980
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x45eca8
cmp dword [edi + 0xd4], esi
je 0x45ec64
cmp dword [edi + 0xac], 0xffffffff
je 0x45f066
push str.PEReference:_no_name_n
push 0x523a30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
push 0x18
push 1
push 0
push edi
push 0
push 0
push 0
mov dword [edi + 0x54], 0x18
call fcn.00465410
add esp, 0x44
mov dword [edi + 0xc], esi
cmp dword [edi + 0x120], esi
jmp 0x45ed33
call fcn.00477150
cmp dword [eax], esi
je 0x45ecce
call fcn.00477050
mov esi, eax
call fcn.00477070
push ebx
push str.PEReference:__s_n
push dword [eax]
mov eax, dword [esi]
call eax
add esp, 0xc
xor esi, esi
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3b
je 0x45ed48
cmp dword [edi + 0xd4], 0
je 0x45ecef
cmp dword [edi + 0xac], 0xffffffff
je 0x45f066
push str.PEReference:_expecting__
push 0x502258
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
push 0x19
push 1
push 0
push edi
push 0
push 0
push 0
mov dword [edi + 0x54], 0x19
call fcn.00465410
add esp, 0x44
mov dword [edi + 0xc], 0
cmp dword [edi + 0x120], 0
jne 0x45f066
pop ebx
mov dword [edi + 0xd4], 1
pop edi
pop esi
pop ebp
ret
push edi
call fcn.00488f50
inc dword [edi + 0x1b8]
add esp, 4
mov eax, dword [edi]
test eax, eax
je 0x45ed6f
mov eax, dword [eax + 0x60]
test eax, eax
je 0x45ed6f
push ebx
push dword [edi + 4]
call eax
add esp, 8
mov esi, eax
cmp dword [edi + 0xac], 0xffffffff
je 0x45f066
test esi, esi
jne 0x45eedf
cmp dword [edi + 0x1c], 1
je 0x45ee79
cmp dword [edi + 0x58], esi
jne 0x45ed9c
cmp dword [edi + 0x5c], esi
je 0x45ee79
cmp dword [edi + 0x68], 0
je 0x45ee11
mov ecx, dword [edi + 0x70]
test ecx, ecx
je 0x45ee11
mov eax, dword [edi]
xor edx, edx
mov dword [edi + 0x54], 0x1b
test eax, eax
je 0x45edc4
cmp dword [eax + 0x6c], 0xdeedbeaf
jne 0x45edc4
mov edx, dword [eax + 0x7c]
push 0
push ebx
push str.PEReference:____s__not_found_n
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push 2
push 0x1b
push 4
push 0
push edi
push dword [edi + 0x6c]
push ecx
push edx
call fcn.00465410
add esp, 0x48
mov dword [edi + 0x64], 0
push 0
push 0
push 0
push edi
call fcn.00463e50
add esp, 0x10
mov dword [edi + 0x5c], 1
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
je 0x45ee2a
cmp dword [eax + 0x6c], 0xdeedbeaf
jne 0x45ee25
mov ecx, dword [eax + 0x7c]
mov eax, dword [eax + 0x54]
jmp 0x45ee2c
xor eax, eax
push 0
push ebx
push str.PEReference:____s__not_found_n
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push 1
push 0x1b
push 1
push 0
push edi
push dword [edi + 4]
push eax
push ecx
call fcn.00465410
add esp, 0x48
mov dword [edi + 0x64], 0
push 0
push 0
push 0
push edi
call fcn.00463e50
add esp, 0x10
mov dword [edi + 0x5c], 1
pop ebx
pop edi
pop esi
pop ebp
ret
push ebx
push str.PEReference:____s__not_found_n
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push 3
push 0x1a
push 1
push 0
push edi
push 0
push 0
push 0
mov dword [edi + 0x54], 0x1a
call fcn.00465410
add esp, 0x44
mov dword [edi + 0xc], 0
cmp dword [edi + 0x120], 0
jne 0x45eec4
mov dword [edi + 0xd4], 1
push 0
push 0
push 0
push edi
call fcn.00463e50
add esp, 0x10
mov dword [edi + 0x5c], 1
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, dword [esi + 0x30]
cmp eax, 4
je 0x45ef3e
cmp eax, 5
je 0x45ef3e
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
je 0x45ef05
cmp dword [eax + 0x6c], 0xdeedbeaf
jne 0x45ef00
mov ecx, dword [eax + 0x7c]
mov eax, dword [eax + 0x54]
jmp 0x45ef07
xor eax, eax
push 0
push ebx
push str.Internal:____s__is_not_a_parameter_entity_n
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push 1
push 0x1b
push 1
push 0
push edi
push dword [edi + 4]
push eax
push ecx
call fcn.00465410
add esp, 0x48
mov dword [edi + 0x5c], 1
pop ebx
pop edi
pop esi
pop ebp
ret
push 0
push esi
push 0
push edi
call fcn.00463e50
add esp, 0x10
test eax, eax
jne 0x45f066
cmp dword [esi + 0x30], 5
jne 0x45ef71
test byte [edi + 0x168], 0x1e
jne 0x45ef71
cmp dword [edi + 0x10], eax
jne 0x45ef71
cmp dword [edi + 0x68], eax
je 0x45f066
push esi
push edi
call fcn.00488aa0
mov ebx, eax
push ebx
push edi
call fcn.00464220
add esp, 0x10
test eax, eax
jns 0x45ef96
push ebx
call fcn.00488210
add esp, 4
pop ebx
pop edi
pop esi
pop ebp
ret
cmp dword [esi + 0x30], 5
jne 0x45f05f
cmp dword [edi + 0x124], 0
jne 0x45efc3
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x45efc3
push edi
call fcn.00453070
add esp, 4
cmp dword [edi + 0xac], 0xffffffff
je 0x45f066
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 4
jl 0x45f020
movzx eax, byte [edx]
mov byte [ebp + 8], al
mov eax, dword [ecx + 0x10]
push 4
movzx eax, byte [eax + 1]
mov byte [ebp + 9], al
mov eax, dword [ecx + 0x10]
movzx eax, byte [eax + 2]
mov byte [ebp + 0xa], al
mov eax, dword [ecx + 0x10]
movzx eax, byte [eax + 3]
mov byte [ebp + 0xb], al
lea eax, [ebp + 8]
push eax
call fcn.0048edf0
add esp, 8
test eax, eax
je 0x45f020
push eax
push edi
call fcn.00489930
add esp, 8
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne 0x45f05f
cmp byte [eax + 1], 0x3f
jne 0x45f05f
cmp byte [eax + 2], 0x78
jne 0x45f05f
cmp byte [eax + 3], 0x6d
jne 0x45f05f
cmp byte [eax + 4], 0x6c
jne 0x45f05f
mov al, byte [eax + 5]
cmp al, 0x20
je 0x45f056
cmp al, 9
jb 0x45f052
cmp al, 0xa
jbe 0x45f056
cmp al, 0xd
jne 0x45f05f
push edi
call fcn.004631e0
add esp, 4
mov dword [edi + 0x5c], 1
pop ebx
pop edi
pop esi
pop ebp
ret