Function at 0x43d160
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor al, al
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x43d69b
cmp ecx, 0x7c
je 0x43d69b
cmp ecx, 0x29
jne 0x43d1a8
cmp dword [esi + 0x10], 0
jne 0x43d69b
cmp ecx, ecx
jne 0x43d1a8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x43d6a9
jmp 0x43d609
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x43d25d
push 0x14
call fcn.0046aa7a
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x43d201
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 ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x43d67f
cmp word [ecx], 0x5c
jne 0x43d253
lea edx, [ecx + 2]
cmp edx, eax
je 0x43d253
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x43d23d
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x43d251
cmp ecx, 0x29
je 0x43d251
mov ecx, dword [esi]
test bl, 0x10
jne 0x43d253
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x43d251
cmp edi, 0x7d
jne 0x43d253
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x43d67f
cmp ecx, 0x5c
jne 0x43d3f6
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x43d2b0
cmp word [ecx], 0x5c
jne 0x43d2ab
lea edx, [ecx + 2]
cmp edx, eax
je 0x43d2ab
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x43d295
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x43d2a9
cmp ecx, 0x29
je 0x43d2a9
mov ecx, dword [esi]
test bl, 0x10
jne 0x43d2ab
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x43d2a9
cmp ebx, 0x7d
jne 0x43d2ab
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.0043c5b0
mov eax, dword [edi]
and eax, 0x80
je 0x43d37e
cmp word [esi + 0x48], 0x62
jne 0x43d37e
push 0x14
call fcn.0046aa7a
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x43d31c
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 ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x43d5d9
cmp word [ecx], 0x5c
jne 0x43d36d
lea edx, [ecx + 2]
cmp edx, eax
je 0x43d36d
mov ebx, dword [edi]
test bl, 8
jne 0x43d357
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x43d36b
cmp ecx, 0x29
je 0x43d36b
mov ecx, dword [esi]
test bl, 0x10
jne 0x43d36d
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x43d36b
cmp edi, 0x7d
jne 0x43d36d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.0043c5b0
jmp 0x43d68d
test eax, eax
je 0x43d3ea
cmp word [esi + 0x48], 0x42
jne 0x43d3ea
push 0x14
call fcn.0046aa7a
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x43d3d6
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 eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x43d594
mov ecx, esi
call fcn.0043de50
jmp 0x43d686
cmp ecx, 0x5b
jne 0x43d45d
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x43d440
cmp word [ecx], 0x5c
jne 0x43d43d
add ecx, 2
cmp ecx, eax
je 0x43d43d
mov edx, dword [edi]
test dl, 8
jne 0x43d427
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x43d43b
cmp ebx, 0x29
je 0x43d43b
test dl, 0x10
jne 0x43d43d
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x43d43b
cmp edx, 0x7d
jne 0x43d43d
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0043c5b0
mov ecx, esi
call fcn.0043dd00
cmp dword [esi + 0x4c], 0x5d
jne 0x43d6b0
jmp 0x43d63a
cmp ecx, 0x28
jne 0x43d51e
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x43d4ab
cmp word [ecx], 0x5c
jne 0x43d4a8
add ecx, 2
cmp ecx, eax
je 0x43d4a8
mov edx, dword [edi]
test dl, 8
jne 0x43d492
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x43d4a6
cmp ebx, 0x29
je 0x43d4a6
test dl, 0x10
jne 0x43d4a8
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x43d4a6
cmp edx, 0x7d
jne 0x43d4a8
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0043c5b0
mov ecx, esi
call fcn.0043dfa0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x43d6a9
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x43d50a
cmp word [ecx], 0x5c
jne 0x43d507
add ecx, 2
cmp ecx, edx
je 0x43d507
mov edx, dword [edi]
test dl, 8
jne 0x43d4f1
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x43d505
cmp edi, 0x29
je 0x43d505
test dl, 0x10
jne 0x43d507
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x43d505
cmp edx, 0x7d
jne 0x43d507
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0043c5b0
test bl, bl
je 0x43d68d
jmp 0x43d686
cmp ecx, 0x5e
jne 0x43d535
push 0x14
call fcn.0046aa7a
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x43d54e
cmp ecx, 0x24
jne 0x43d5e5
push 0x14
call fcn.0046aa7a
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x43d58b
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 + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x43d5d9
cmp word [ecx], 0x5c
jne 0x43d5d6
add ecx, 2
cmp ecx, eax
je 0x43d5d6
mov edx, dword [edi]
test dl, 8
jne 0x43d5c0
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x43d5d4
cmp edi, 0x29
je 0x43d5d4
test dl, 0x10
jne 0x43d5d6
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x43d5d4
cmp edx, 0x7d
jne 0x43d5d6
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0043c5b0
jmp 0x43d68d
cmp ecx, 0x2a
je 0x43d6a2
cmp ecx, 0x2b
je 0x43d6a2
cmp ecx, 0x3f
je 0x43d6a2
cmp ecx, 0x7b
je 0x43d6a2
cmp ecx, 0x7d
jne 0x43d61c
test dword [edi], 0x10000000
je 0x43d6b7
jmp 0x43d62d
cmp ecx, 0x5d
jne 0x43d62d
test dword [edi], 0x10000000
je 0x43d6b0
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0043e420
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x43d67f
cmp word [ecx], 0x5c
jne 0x43d67c
add ecx, 2
cmp ecx, eax
je 0x43d67c
mov edx, dword [edi]
test dl, 8
jne 0x43d666
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x43d67a
cmp edi, 0x29
je 0x43d67a
test dl, 0x10
jne 0x43d67c
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x43d67a
cmp edx, 0x7d
jne 0x43d67c
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.0043c5b0
mov ecx, esi
call fcn.0043e1f0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x43d177
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0043c5a0
push 5
call fcn.0043c5a0
push 4
call fcn.0043c5a0
push 6
call fcn.0043c5a0
int3