Function at 0x439290
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 0x4397cb
cmp ecx, 0x7c
je 0x4397cb
cmp ecx, 0x29
jne 0x4392d8
cmp dword [esi + 0x10], 0
jne 0x4397cb
cmp ecx, ecx
jne 0x4392d8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x4397d9
jmp 0x439739
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x43938d
push 0x14
call fcn.0046527a
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 0x439331
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 0x4397af
cmp word [ecx], 0x5c
jne 0x439383
lea edx, [ecx + 2]
cmp edx, eax
je 0x439383
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x43936d
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x439381
cmp ecx, 0x29
je 0x439381
mov ecx, dword [esi]
test bl, 0x10
jne 0x439383
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x439381
cmp edi, 0x7d
jne 0x439383
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x4397af
cmp ecx, 0x5c
jne 0x439526
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4393e0
cmp word [ecx], 0x5c
jne 0x4393db
lea edx, [ecx + 2]
cmp edx, eax
je 0x4393db
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4393c5
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x4393d9
cmp ecx, 0x29
je 0x4393d9
mov ecx, dword [esi]
test bl, 0x10
jne 0x4393db
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x4393d9
cmp ebx, 0x7d
jne 0x4393db
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.004386e0
mov eax, dword [edi]
and eax, 0x80
je 0x4394ae
cmp word [esi + 0x48], 0x62
jne 0x4394ae
push 0x14
call fcn.0046527a
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 0x43944c
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 0x439709
cmp word [ecx], 0x5c
jne 0x43949d
lea edx, [ecx + 2]
cmp edx, eax
je 0x43949d
mov ebx, dword [edi]
test bl, 8
jne 0x439487
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x43949b
cmp ecx, 0x29
je 0x43949b
mov ecx, dword [esi]
test bl, 0x10
jne 0x43949d
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x43949b
cmp edi, 0x7d
jne 0x43949d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.004386e0
jmp 0x4397bd
test eax, eax
je 0x43951a
cmp word [esi + 0x48], 0x42
jne 0x43951a
push 0x14
call fcn.0046527a
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 0x439506
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 0x4396c4
mov ecx, esi
call fcn.00439f80
jmp 0x4397b6
cmp ecx, 0x5b
jne 0x43958d
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x439570
cmp word [ecx], 0x5c
jne 0x43956d
add ecx, 2
cmp ecx, eax
je 0x43956d
mov edx, dword [edi]
test dl, 8
jne 0x439557
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x43956b
cmp ebx, 0x29
je 0x43956b
test dl, 0x10
jne 0x43956d
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x43956b
cmp edx, 0x7d
jne 0x43956d
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.004386e0
mov ecx, esi
call fcn.00439e30
cmp dword [esi + 0x4c], 0x5d
jne 0x4397e0
jmp 0x43976a
cmp ecx, 0x28
jne 0x43964e
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4395db
cmp word [ecx], 0x5c
jne 0x4395d8
add ecx, 2
cmp ecx, eax
je 0x4395d8
mov edx, dword [edi]
test dl, 8
jne 0x4395c2
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x4395d6
cmp ebx, 0x29
je 0x4395d6
test dl, 0x10
jne 0x4395d8
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4395d6
cmp edx, 0x7d
jne 0x4395d8
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.004386e0
mov ecx, esi
call fcn.0043a0d0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4397d9
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x43963a
cmp word [ecx], 0x5c
jne 0x439637
add ecx, 2
cmp ecx, edx
je 0x439637
mov edx, dword [edi]
test dl, 8
jne 0x439621
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x439635
cmp edi, 0x29
je 0x439635
test dl, 0x10
jne 0x439637
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x439635
cmp edx, 0x7d
jne 0x439637
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.004386e0
test bl, bl
je 0x4397bd
jmp 0x4397b6
cmp ecx, 0x5e
jne 0x439665
push 0x14
call fcn.0046527a
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x43967e
cmp ecx, 0x24
jne 0x439715
push 0x14
call fcn.0046527a
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 0x4396bb
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 0x439709
cmp word [ecx], 0x5c
jne 0x439706
add ecx, 2
cmp ecx, eax
je 0x439706
mov edx, dword [edi]
test dl, 8
jne 0x4396f0
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x439704
cmp edi, 0x29
je 0x439704
test dl, 0x10
jne 0x439706
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x439704
cmp edx, 0x7d
jne 0x439706
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.004386e0
jmp 0x4397bd
cmp ecx, 0x2a
je 0x4397d2
cmp ecx, 0x2b
je 0x4397d2
cmp ecx, 0x3f
je 0x4397d2
cmp ecx, 0x7b
je 0x4397d2
cmp ecx, 0x7d
jne 0x43974c
test dword [edi], 0x10000000
je 0x4397e7
jmp 0x43975d
cmp ecx, 0x5d
jne 0x43975d
test dword [edi], 0x10000000
je 0x4397e0
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0043a550
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x4397af
cmp word [ecx], 0x5c
jne 0x4397ac
add ecx, 2
cmp ecx, eax
je 0x4397ac
mov edx, dword [edi]
test dl, 8
jne 0x439796
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x4397aa
cmp edi, 0x29
je 0x4397aa
test dl, 0x10
jne 0x4397ac
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4397aa
cmp edx, 0x7d
jne 0x4397ac
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.004386e0
mov ecx, esi
call fcn.0043a320
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x4392a7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.004386d0
push 5
call fcn.004386d0
push 4
call fcn.004386d0
push 6
call fcn.004386d0
int3