Function at 0x438900
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
push edi
je 0x438cc0
mov edi, dword [sym.imp.MSVCR110.dll_void____cdecl_operator_new_unsigned_int_]
jmp 0x438920
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x438cc0
cmp eax, 0x29
jne 0x438948
cmp dword [esi + 0x10], 0
jne 0x438cc0
test dword [esi + 0x50], 0x10000000
je 0x438cc6
cmp eax, 0x2e
jne 0x4389f7
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x438982
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x438984
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4389a0
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4389eb
cmp word [eax], 0x5c
jne 0x4389e8
add eax, 2
cmp eax, ecx
je 0x4389e8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4389d4
movzx edx, word [eax]
cmp edx, 0x28
je 0x4389e6
cmp edx, 0x29
je 0x4389e6
test cl, 0x10
jne 0x4389e8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4389e6
cmp ecx, 0x7d
jne 0x4389e8
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
jmp 0x438cad
cmp eax, 0x5c
jne 0x438b24
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x438a42
cmp word [eax], 0x5c
jne 0x438a3f
add eax, 2
cmp eax, ecx
je 0x438a3f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x438a2b
movzx edx, word [eax]
cmp edx, 0x28
je 0x438a3d
cmp edx, 0x29
je 0x438a3d
test cl, 0x10
jne 0x438a3f
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x438a3d
cmp ecx, 0x7d
jne 0x438a3f
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x438ab0
cmp word [esi + 0x48], 0x62
jne 0x438ab0
lea ecx, [esi + 0x24]
call fcn.00439930
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x438aa4
cmp word [eax], 0x5c
jne 0x438aa1
add eax, 2
cmp eax, ecx
je 0x438aa1
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x438a8d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x438a9f
cmp ecx, 0x29
je 0x438a9f
test dl, 0x10
jne 0x438aa1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x438a9f
cmp ecx, 0x7d
jne 0x438aa1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
jmp 0x438cb4
test eax, eax
je 0x438b18
cmp word [esi + 0x48], 0x42
jne 0x438b18
lea ecx, [esi + 0x24]
call fcn.00439930
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x438b0c
cmp word [eax], 0x5c
jne 0x438b09
add eax, 2
cmp eax, ecx
je 0x438b09
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x438af5
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x438b07
cmp ecx, 0x29
je 0x438b07
test dl, 0x10
jne 0x438b09
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x438b07
cmp ecx, 0x7d
jne 0x438b09
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
jmp 0x438cb4
mov ecx, esi
call fcn.00439590
jmp 0x438cad
cmp eax, 0x5b
jne 0x438bd5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x438b6f
cmp word [eax], 0x5c
jne 0x438b6c
add eax, 2
cmp eax, ecx
je 0x438b6c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x438b58
movzx edx, word [eax]
cmp edx, 0x28
je 0x438b6a
cmp edx, 0x29
je 0x438b6a
test cl, 0x10
jne 0x438b6c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x438b6a
cmp ecx, 0x7d
jne 0x438b6c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
mov ecx, esi
call fcn.004394e0
cmp dword [esi + 0x4c], 0x5d
jne 0x438cce
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x438bc9
cmp word [eax], 0x5c
jne 0x438bc6
add eax, 2
cmp eax, ecx
je 0x438bc6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x438bb2
movzx edx, word [eax]
cmp edx, 0x28
je 0x438bc4
cmp edx, 0x29
je 0x438bc4
test cl, 0x10
jne 0x438bc6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x438bc4
cmp ecx, 0x7d
jne 0x438bc6
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
jmp 0x438cad
cmp eax, 0x28
jne 0x438c3d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x438c1c
cmp word [eax], 0x5c
jne 0x438c19
add eax, 2
cmp eax, ecx
je 0x438c19
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x438c05
movzx edx, word [eax]
cmp edx, 0x28
je 0x438c17
cmp edx, 0x29
je 0x438c17
test cl, 0x10
jne 0x438c19
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x438c17
cmp ecx, 0x7d
jne 0x438c19
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00438360
mov ecx, esi
call fcn.00439670
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.00439470
test bl, bl
je 0x438cb4
jmp 0x438cad
cmp eax, 0x5e
jne 0x438c53
lea ecx, [esi + 0x24]
call fcn.00439850
mov ecx, esi
call fcn.004388b0
jmp 0x438cb4
cmp eax, 0x24
jne 0x438c69
lea ecx, [esi + 0x24]
call fcn.004398c0
mov ecx, esi
call fcn.004388b0
jmp 0x438cb4
cmp eax, 0x2a
je 0x438cde
cmp eax, 0x2b
je 0x438cde
cmp eax, 0x3f
je 0x438cde
cmp eax, 0x7b
je 0x438cde
cmp eax, 0x7d
jne 0x438c8b
test dword [esi + 0x50], 0x10000000
je 0x438cd6
cmp eax, 0x5d
jne 0x438c99
test dword [esi + 0x50], 0x10000000
je 0x438cce
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004399a0
mov ecx, esi
call fcn.004388b0
mov ecx, esi
call fcn.00439720
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x438920
pop edi
pop esi
mov al, cl
pop ebx
ret
push 5
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 4
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 6
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 0xa
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
int3