Function at 0x433a70
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov ebx, ecx
push esi
push edi
mov edi, edx
mov esi, dword [ebx + 0x14]
mov dword [esp + 0x10], edi
lea eax, [esi - 1]
mov dword [ebx + 0x14], eax
test esi, esi
je 0x433fbb
mov edx, dword [ebx + 8]
mov esi, dword [ebp + 8]
cmp esi, edx
je 0x433d82
mov cl, byte [esi]
movsx eax, cl
add eax, 0xffffffdc
mov byte [esp + 0xf], cl
cmp eax, 5
ja case.0x433b1a.58
jmp dword [eax*4 + 0x434028]
lea eax, [esi + 1]
cmp eax, edx
je 0x433d8e
lea eax, [esi + 1]
mov dword [esp + 0x1c], eax
mov esi, eax
cmp cl, 0x25
je 0x433cbc
cmp cl, 0x5b
jne 0x433cc5
cmp byte [esi], 0x5e
jne 0x433ae7
inc esi
cmp esi, edx
je 0x433fd5
mov al, byte [esi]
inc esi
cmp al, 0x25
jne 0x433afb
cmp esi, edx
jae 0x433afb
inc esi
cmp byte [esi], 0x5d
jne 0x433ae7
jmp 0x433cc4
mov ch, byte [esi + 1]
movsx eax, ch
add eax, 0xffffffd0
cmp eax, 0x36
ja case.0x433b1a.58
movzx eax, byte [eax + 0x434050]
jmp dword [eax*4 + 0x434040]
lea ecx, [esi + 2]
lea eax, [edx - 1]
cmp ecx, eax
jae 0x433fc8
mov dh, byte [ecx]
cmp byte [edi], dh
jne 0x433f05
mov al, byte [ecx + 1]
mov ecx, 1
mov esi, dword [ebx + 4]
mov byte [esp + 0xf], al
lea eax, [edi + 1]
cmp eax, esi
jae 0x433f05
mov dl, byte [eax]
cmp dl, byte [esp + 0xf]
jne 0x433b7a
sub ecx, 1
jne 0x433b7f
lea edi, [eax + 1]
mov dword [esp + 0x10], edi
test edi, edi
je 0x433d82
mov esi, dword [ebp + 8]
add esi, 4
jmp 0x433d74
cmp dl, dh
jne 0x433b7f
inc ecx
inc eax
cmp eax, esi
jb 0x433b53
xor edi, edi
inc dword [ebx + 0x14]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add esi, 2
mov dword [ebp + 8], esi
cmp byte [esi], 0x5b
jne 0x433fe2
cmp byte [esi + 1], 0x5e
lea ecx, [esi + 1]
jne 0x433bb0
inc ecx
nop dword [eax + eax]
cmp ecx, edx
je 0x433fd5
mov al, byte [ecx]
inc ecx
cmp al, 0x25
jne 0x433bc4
cmp ecx, edx
jae 0x433bc4
inc ecx
cmp byte [ecx], 0x5d
jne 0x433bb0
lea esi, [ecx + 1]
cmp edi, dword [ebx]
jne 0x433bd4
xor al, al
jmp 0x433bd7
mov al, byte [edi - 1]
mov edx, dword [ebp + 8]
lea ecx, [esi - 1]
push ecx
movzx ecx, al
call fcn.004339e0
add esp, 4
test eax, eax
jne 0x433f05
movzx ecx, byte [edi]
lea eax, [esi - 1]
mov edx, dword [ebp + 8]
push eax
call fcn.004339e0
add esp, 4
test eax, eax
je 0x433f05
jmp 0x433d74
movzx ecx, ch
sub ecx, 0x31
js 0x433fef
cmp ecx, dword [ebx + 0x18]
jge 0x433fef
mov esi, dword [ebx + ecx*8 + 0x20]
mov dword [esp + 0x1c], esi
cmp esi, 0xffffffff
je 0x433fef
mov eax, dword [ebx + 4]
sub eax, edi
cmp eax, esi
jb 0x433f05
mov ecx, dword [ebx + ecx*8 + 0x1c]
mov edx, edi
sub esi, 4
jb 0x433c61
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x433c66
add ecx, 4
add edx, 4
sub esi, 4
jae 0x433c50
cmp esi, 0xfffffffc
je 0x433ca3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x433f05
cmp esi, 0xfffffffd
je 0x433ca3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x433f05
cmp esi, 0xfffffffe
je 0x433ca3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x433f05
cmp esi, 0xffffffff
je 0x433ca3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x433f05
add edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
je 0x433d82
mov esi, dword [ebp + 8]
add esi, 2
jmp 0x433d74
cmp esi, edx
je 0x433fae
inc esi
cmp edi, dword [ebx + 4]
jae 0x433d61
mov dl, byte [esp + 0xf]
movzx ecx, byte [edi]
mov al, dl
mov dword [esp + 0x18], ecx
cmp al, 0x25
je 0x433d06
cmp al, 0x2e
je 0x433d18
cmp al, 0x5b
je 0x433cf5
movzx eax, dl
xor ecx, ecx
cmp eax, dword [esp + 0x18]
sete cl
jmp 0x433d14
mov edx, dword [ebp + 8]
lea eax, [esi - 1]
push eax
call fcn.004339e0
add esp, 4
jmp 0x433d12
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax]
call fcn.004338b0
mov ecx, eax
test ecx, ecx
je 0x433d61
mov ecx, dword [ebx + 0x10]
lea eax, [ecx - 1]
mov dword [ebx + 0x10], eax
test ecx, ecx
je 0x433fbb
movsx eax, byte [esi]
add eax, 0xffffffd6
cmp eax, 0x15
ja case.0x433d3b.44
movzx eax, byte [eax + 0x43409c]
jmp dword [eax*4 + 0x434088]
inc esi
lea edx, [edi + 1]
push esi
mov ecx, ebx
mov dword [ebp + 8], esi
call fcn.00433a70
add esp, 4
test eax, eax
jne 0x433d96
jmp 0x433d77
inc edi
mov dword [esp + 0x10], edi
jmp 0x433d74
mov al, byte [esi]
cmp al, 0x2a
je 0x433d73
cmp al, 0x3f
je 0x433d73
cmp al, 0x2d
jne 0x433f05
inc esi
mov dword [ebp + 8], esi
mov edx, dword [ebx + 8]
cmp esi, edx
jne 0x433aa3
inc dword [ebx + 0x14]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
cmp edi, dword [ebx + 4]
cmove eax, edi
inc dword [ebx + 0x14]
mov edi, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 1], 0x29
lea ecx, [esi + 1]
mov eax, dword [ebx + 0x18]
jne 0x433dcd
cmp eax, 0x20
jge 0x434000
mov dword [ebx + eax*8 + 0x1c], edi
mov dword [ebx + eax*8 + 0x20], 0xfffffffe
inc eax
mov dword [ebx + 0x18], eax
lea eax, [esi + 2]
push eax
jmp 0x433de7
cmp eax, 0x20
jge 0x43400d
mov dword [ebx + eax*8 + 0x1c], edi
mov dword [ebx + eax*8 + 0x20], 0xffffffff
inc eax
mov dword [ebx + 0x18], eax
push ecx
mov edx, edi
mov ecx, ebx
call fcn.00433a70
mov edi, eax
add esp, 4
test edi, edi
jne 0x433d82
dec dword [ebx + 0x18]
inc dword [ebx + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x18]
sub ecx, 1
js 0x43401a
lea eax, [ebx + 0x20]
lea eax, [eax + ecx*8]
cmp dword [eax], 0xffffffff
je 0x433e2b
sub eax, 8
sub ecx, 1
js 0x43401a
jmp 0x433e18
lea esi, [ebx + ecx*8]
mov eax, edi
sub eax, dword [ebx + ecx*8 + 0x1c]
mov edx, edi
mov dword [esi + 0x20], eax
mov ecx, ebx
mov eax, dword [ebp + 8]
inc eax
push eax
call fcn.00433a70
mov edi, eax
add esp, 4
test edi, edi
jne 0x433d82
mov dword [esi + 0x20], 0xffffffff
inc dword [ebx + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
mov dword [esp + 0x10], edi
mov eax, edi
xor ecx, ecx
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
cmp eax, dword [ebx + 4]
jae 0x433ed9
movzx edx, byte [eax]
mov dword [esp + 0x18], edx
mov dl, byte [edi]
mov byte [esp + 0xf], dl
cmp dl, 0x25
je 0x433eba
cmp dl, 0x2e
je 0x433ed5
cmp dl, 0x5b
je 0x433ea6
movzx eax, dl
xor edx, edx
cmp eax, dword [esp + 0x18]
sete dl
jmp 0x433ecd
mov ecx, dword [esp + 0x18]
lea eax, [esi - 1]
push eax
mov edx, edi
call fcn.004339e0
add esp, 4
jmp 0x433ec7
movzx edx, byte [edi + 1]
mov ecx, dword [esp + 0x18]
call fcn.004338b0
mov ecx, dword [esp + 0x14]
mov edx, eax
test edx, edx
je 0x433ed9
mov eax, dword [esp + 0x1c]
inc ecx
inc eax
jmp 0x433e6f
mov edi, dword [esp + 0x10]
test ecx, ecx
js 0x433f05
inc esi
lea edx, [ecx + edi]
mov ecx, ebx
push esi
call fcn.00433a70
add esp, 4
test eax, eax
jne 0x433d96
mov ecx, dword [esp + 0x14]
sub ecx, 1
mov dword [esp + 0x14], ecx
jns 0x433ee2
xor edi, edi
inc dword [ebx + 0x14]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esi + 1]
mov dword [esp + 0x14], edi
push eax
mov edx, edi
mov ecx, ebx
call fcn.00433a70
mov edi, eax
add esp, 4
test edi, edi
jne 0x433d82
mov edx, dword [esp + 0x14]
cmp edx, dword [ebx + 4]
jae 0x433f05
mov eax, dword [ebp + 8]
movzx edi, byte [edx]
mov cl, byte [eax]
mov al, cl
cmp al, 0x25
je 0x433f6f
cmp al, 0x2e
je 0x433f8b
cmp al, 0x5b
je 0x433f5c
movzx eax, cl
xor ecx, ecx
cmp eax, edi
sete cl
jmp 0x433f83
mov edx, dword [ebp + 8]
lea eax, [esi - 1]
push eax
mov ecx, edi
call fcn.004339e0
add esp, 4
jmp 0x433f7d
mov eax, dword [esp + 0x1c]
mov ecx, edi
movzx edx, byte [eax]
call fcn.004338b0
mov edx, dword [esp + 0x14]
mov ecx, eax
test ecx, ecx
je 0x433f05
lea eax, [esi + 1]
inc edx
push eax
mov ecx, ebx
mov dword [esp + 0x18], edx
call fcn.00433a70
mov edi, eax
add esp, 4
test edi, edi
je 0x433f31
inc dword [ebx + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x4aced8
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acf60
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acf1c
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acefc
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acf74
push dword [ebx + 0xc]
call fcn.004146e0
lea eax, [ecx + 1]
push eax
push 0x4acea4
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acf4c
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acf4c
push dword [ebx + 0xc]
call fcn.004146e0
push 0x4acec0
push dword [ebx + 0xc]
call fcn.004146e0
nop
mov ebx, 0x500433a
cmp eax, dword [ebx]
invalid