Function at 0x441570
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x25
push edi
jne case.0x4415a5.2
mov ecx, dword [esi + 0xac]
lea eax, [ecx + 1]
cmp eax, 0x11
ja case.default.0x4415a5
movzx eax, byte [eax + 0x44198c]
jmp dword [eax*4 + 0x441978]
xor ecx, ecx
lea edx, [ecx + 0x12]
call fcn.0043f5c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xd4], 0
je 0x4415cf
cmp ecx, 0xffffffff
je case.0x4415a5.2
push 0
push str.PEReference_in_prolog_n
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x13
push 0x13
jmp 0x441941
cmp dword [esi + 0xd4], 0
je 0x441606
cmp ecx, 0xffffffff
je case.0x4415a5.2
push 0
push str.PEReference_in_epilog_n
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x14
push 0x14
jmp 0x441941
cmp dword [esi + 0x60], 0
jne 0x44163b
cmp dword [esi + 0x28], 1
je case.0x4415a5.2
mov al, byte [edx + 1]
cmp al, 0x20
je case.0x4415a5.2
cmp al, 9
jb 0x441652
cmp al, 0xa
jbe case.0x4415a5.2
cmp al, 0xd
je case.0x4415a5.2
test al, al
je case.0x4415a5.2
mov ecx, esi
call fcn.00456ae0
mov eax, esi
call fcn.00442fb0
mov edi, eax
call fcn.00461640
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call ebx
cmp dword [0x553af4], eax
jne 0x44168e
mov eax, 0x5546f0
jmp 0x441698
call fcn.00461560
add eax, 0x1a4
cmp dword [eax], 0
je 0x4416f4
call fcn.00461640
call ebx
cmp dword [0x553af4], eax
jne 0x4416b3
mov ebx, 0x554748
jmp 0x4416c0
call fcn.00461560
mov ebx, eax
add ebx, 0x17c
call fcn.00461640
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x553af4], eax
jne 0x4416da
mov eax, 0x54f7e0
jmp 0x4416e4
call fcn.00461560
add eax, 0x174
mov ecx, dword [ebx]
mov edx, dword [eax]
push edi
push str.PEReference:__s_n
push ecx
call edx
add esp, 0xc
test edi, edi
jne 0x441732
cmp dword [esi + 0xd4], edi
je 0x44170d
cmp dword [esi + 0xac], 0xffffffff
je case.0x4415a5.2
push 0
push str.PEReference:_no_name_n
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x18
push 0x18
jmp 0x441941
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x3b
jne 0x44190f
mov ecx, esi
call fcn.00456ae0
mov eax, dword [esi]
test eax, eax
je 0x441765
mov eax, dword [eax + 0x60]
test eax, eax
je 0x441765
mov edx, dword [esi + 4]
push edi
push edx
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4417dc
cmp dword [esi + 0x1c], 1
je 0x4417c4
cmp dword [esi + 0x58], 0
jne 0x441777
cmp dword [esi + 0x5c], 0
je 0x4417c4
cmp dword [esi + 0x68], 0
je 0x4417a3
cmp dword [esi + 0x70], 0
je 0x4417a3
xor edx, edx
push str.PEReference:____s__not_found_n
lea ebx, [edx + 0x1b]
call fcn.0043fa50
add esp, 4
mov dword [esi + 0x64], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edi
push 0x1b
mov edi, str.PEReference:____s__not_found_n
mov eax, esi
call fcn.0043f9e0
add esp, 4
mov dword [esi + 0x64], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
mov edx, str.PEReference:____s__not_found_n
mov ecx, 0x1a
call fcn.0043fb80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x28], 0x441420
je 0x441805
push ebx
mov eax, esi
call fcn.00441430
add esp, 4
push eax
mov eax, esi
call fcn.00440de0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x30]
cmp eax, 4
je 0x44182a
cmp eax, 5
je 0x44182a
mov eax, edi
mov edx, str.PEReference:__s_is_not_a_parameter_entity_n
mov ecx, 0x1e
call fcn.0043fb80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, ebx
mov eax, esi
call fcn.00457920
push eax
mov eax, esi
call fcn.00440de0
add esp, 4
test eax, eax
jl case.0x4415a5.2
cmp dword [esi + 0x124], 0
jne 0x441867
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x441867
mov eax, esi
call fcn.00440bd0
mov eax, dword [esi + 0x24]
mov edx, dword [eax + 0x14]
sub edx, dword [eax + 0x10]
cmp edx, 4
jl 0x4418ad
mov eax, dword [eax + 0x10]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
mov byte [esp + 0xc], cl
movzx ecx, byte [eax + 2]
mov byte [esp + 0xd], dl
movzx edx, byte [eax + 3]
lea eax, [esp + 0xc]
mov byte [esp + 0xe], cl
mov byte [esp + 0xf], dl
call fcn.0045e040
test eax, eax
je 0x4418ad
mov edi, eax
mov eax, esi
call fcn.004573e0
cmp dword [ebx + 0x30], 5
jne case.0x4415a5.2
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne case.0x4415a5.2
cmp byte [eax + 1], 0x3f
jne case.0x4415a5.2
cmp byte [eax + 2], 0x78
jne case.0x4415a5.2
cmp byte [eax + 3], 0x6d
jne case.0x4415a5.2
cmp byte [eax + 4], 0x6c
jne case.0x4415a5.2
mov al, byte [eax + 5]
cmp al, 0x20
je 0x441901
cmp al, 9
jb 0x4418fd
cmp al, 0xa
jbe 0x441901
cmp al, 0xd
jne case.0x4415a5.2
mov eax, esi
call fcn.0044a150
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xd4], 0
je 0x441921
cmp dword [esi + 0xac], 0xffffffff
je case.0x4415a5.2
push 0
push str.PEReference:_expecting___n
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x19
push 0x19
push 1
push 0
push esi
push 0
push 0
push 0
call fcn.004516c0
add esp, 0x44
cmp dword [esi + 0x120], 0
mov dword [esi + 0xc], 0
jne case.0x4415a5.2
mov dword [esi + 0xd4], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret