Function at 0x44e900
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
je 0x44e920
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebx + 0xac]
inc edx
cmp edx, 0x11
jbe switch.0x0044e976
sub esp, 0xc
push ebx
call fcn.00438ac0
mov dword [esp], ebx
call fcn.00450a70
mov esi, eax
mov eax, dword [0x61e084]
add esp, 0x10
test eax, eax
jne 0x44e9f1
test esi, esi
je 0x44ea6f
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3b
je 0x44ea0d
xor ecx, ecx
mov edx, 0x19
mov eax, ebx
call fcn.0044d130
jmp case.0x44e976.2
jmp dword [edx*4 + 0x52a0bc]
xor ecx, ecx
mov edx, 0x14
mov eax, ebx
call fcn.0044d130
jmp case.0x44e976.2
mov edx, dword [ebx + 0x60]
test edx, edx
jne 0x44e99e
cmp dword [ebx + 0x28], 1
je case.0x44e976.2
mov dl, byte [eax + 1]
cmp dl, 0x20
je case.0x44e976.2
lea eax, [edx - 9]
cmp al, 1
jbe case.0x44e976.2
cmp dl, 0xd
je case.0x44e976.2
test dl, dl
jne case.default.0x44e976
jmp case.0x44e976.2
xor ecx, ecx
mov edx, 0x13
mov eax, ebx
call fcn.0044d130
jmp case.0x44e976.2
xor ecx, ecx
mov edx, 0x12
mov eax, ebx
call fcn.0044d130
jmp case.0x44e976.2
mov edi, dword [0x61e0b0]
push eax
push esi
push str.PEReference:__s_n
push edi
call dword [0x5190a8]
add esp, 0x10
jmp 0x44e94f
sub esp, 0xc
push ebx
call fcn.00438ac0
mov eax, dword [ebx]
add esp, 0x10
test eax, eax
je 0x44ea6b
mov eax, dword [eax + 0x60]
test eax, eax
je 0x44ea6b
push ecx
push ecx
push esi
mov edx, dword [ebx + 4]
push edx
call eax
add esp, 0x10
mov edi, eax
cmp dword [ebx + 0xac], 0xffffffff
je case.0x44e976.2
test edi, edi
je 0x44eaae
mov eax, dword [ebx + 0x24]
cmp dword [eax + 0x28], 0x44b370
je 0x44ea82
mov edx, edi
mov eax, ebx
call fcn.0044dbb0
push edi
push edi
push eax
push ebx
call fcn.0044d700
add esp, 0x10
jmp case.0x44e976.2
xor edi, edi
jmp 0x44ea34
xor ecx, ecx
mov edx, 0x18
mov eax, ebx
call fcn.0044d130
jmp case.0x44e976.2
mov eax, dword [edi + 0x30]
sub eax, 4
cmp eax, 1
jbe 0x44eb2d
sub esp, 0xc
mov ecx, str.PEReference:__s_is_not_a_parameter_entity_n
mov edx, 0x1e
mov eax, ebx
push esi
call fcn.0044c070
add esp, 0x10
jmp case.0x44e976.2
cmp dword [ebx + 0x1c], 1
je 0x44eac2
mov eax, dword [ebx + 0x58]
test eax, eax
jne 0x44eadf
mov eax, dword [ebx + 0x5c]
test eax, eax
jne 0x44eadf
sub esp, 0xc
mov ecx, str.PEReference:____s__not_found_n
mov edx, 0x1a
mov eax, ebx
push esi
call fcn.0044c070
add esp, 0x10
jmp case.0x44e976.2
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x44eb12
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x44eb12
mov ecx, str.PEReference:____s__not_found_n
push eax
mov edx, 0x1b
push eax
mov eax, ebx
push 0
push esi
call fcn.0044c310
add esp, 0x10
mov dword [ebx + 0x64], 0
jmp case.0x44e976.2
mov ecx, str.PEReference:____s__not_found_n
push eax
mov edx, 0x1b
push eax
mov eax, ebx
push 0
push esi
call fcn.0044c3c0
add esp, 0x10
jmp 0x44eb06
push esi
push esi
push edi
push ebx
call fcn.004372d0
pop edx
pop ecx
push eax
push ebx
call fcn.0044d700
add esp, 0x10
test eax, eax
js case.0x44e976.2
mov esi, dword [ebx + 0x124]
test esi, esi
jne 0x44eb6d
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 0xf9
jg 0x44eb6d
mov eax, ebx
call fcn.0044d650
cmp dword [ebx + 0xac], 0xffffffff
je case.0x44e976.2
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
sub eax, edx
cmp eax, 3
jg 0x44ebf4
cmp dword [edi + 0x30], 5
jne case.0x44e976.2
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
jne case.0x44e976.2
cmp byte [eax + 1], 0x3f
jne case.0x44e976.2
cmp byte [eax + 2], 0x78
jne case.0x44e976.2
cmp byte [eax + 3], 0x6d
jne case.0x44e976.2
cmp byte [eax + 4], 0x6c
jne case.0x44e976.2
mov dl, byte [eax + 5]
cmp dl, 0x20
je 0x44ebe3
lea eax, [edx - 9]
cmp al, 1
jbe 0x44ebe3
cmp dl, 0xd
jne case.0x44e976.2
sub esp, 0xc
push ebx
call fcn.00452cd0
add esp, 0x10
jmp case.0x44e976.2
mov al, byte [edx]
mov byte [ebp - 0x10], al
mov al, byte [edx + 1]
mov byte [ebp - 0xf], al
mov al, byte [edx + 2]
mov byte [ebp - 0xe], al
mov al, byte [edx + 3]
push esi
mov byte [ebp - 0xd], al
lea eax, [ebp - 0x10]
push esi
push 4
push eax
call fcn.004d2350
add esp, 0x10
test eax, eax
je 0x44eb8a
push ecx
push ecx
push eax
push ebx
call fcn.00437f80
add esp, 0x10
jmp 0x44eb8a