Function at 0x43bfe9
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov eax, dword [esp + 0xa0]
call fcn.0043b940
mov dword [esp + 0x5c], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov edx, eax
and edx, 2
mov eax, dword [esp + 0x9c]
or eax, 4
test edx, edx
cmove eax, dword [esp + 0x9c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
test edx, edx
jle 0x43c9c2
mov eax, dword [esp + 0x9c]
and eax, 2
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x9c]
and eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov ebx, dword [eax]
movzx eax, byte [ebx]
cmp al, 0x2d
jne 0x43c0af
movzx eax, byte [ebx + 1]
test al, al
je 0x43c9d6
cmp al, 0x2d
jne 0x43ca96
cmp byte [ebx + 2], 0
jne 0x43ca96
sub edx, 1
mov eax, dword [esp + 0x90]
mov dword [eax], edx
test edx, edx
jle 0x43c9e0
mov eax, dword [esp + 0x94]
add dword [eax], 4
mov eax, 2
jmp 0x43caee
cmp al, 0x2b
jne 0x43c0c0
mov eax, dword [esp + 0x5c]
test byte [eax], 1
je 0x43cabd
mov eax, dword [esp + 0x5c]
mov esi, dword [eax]
test esi, 2
jne 0x43c9ea
mov eax, ebx
call fcn.0043b96d
test eax, eax
je 0x43c9f4
test esi, 4
je 0x43cabd
mov eax, 1
jmp 0x43caee
lea eax, [ebx + 1]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 1
jmp 0x43c131
lea eax, [ebx + 2]
mov dword [esp + 0x24], eax
cmp byte [ebx + 3], 0
je 0x43ca3a
mov dword [esp + 0x48], 1
mov dword [esp + 0x40], 1
mov ebp, dword [esp + 0xa4]
cmp dword [esp + 0x50], 0
je 0x43c177
mov eax, dword [esp + 0x98]
mov eax, dword [eax]
mov ecx, eax
test eax, eax
mov eax, 0x45aca0
cmovne eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0
cmp dword [esp + 0x30], 0
je 0x43c1b5
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
jmp 0x43c1b5
cmp dword [esp + 0x30], 0
je 0x43c1a2
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
lea ebp, [eax + 4]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x2c], eax
jmp 0x43c1b5
mov eax, dword [esp + 0x98]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x40]
sub eax, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x98]
add eax, 0x10
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x9c]
and edi, 3
jmp 0x43c1f7
add dword [esp + 0x3c], 0xc
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
je 0x43c21d
movzx eax, byte [eax + 1]
lea edx, [eax - 0x2b]
cmp dl, 1
jbe 0x43c218
cmp al, 0x7e
je 0x43c218
cmp al, 0x25
je 0x43c218
test al, al
jne 0x43c21d
add dword [esp + 0x38], 1
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
jmp 0x43c358
cmp byte [esp + 0x20], 0x5c
jne 0x43c239
add ebx, 1
jmp 0x43c2f2
movsx eax, byte [esp + 0x20]
mov dword [esp + 4], eax
mov dword [esp], str.__
call sub.msvcrt.dll_strchr
test eax, eax
je 0x43c2f2
movzx eax, byte [esi]
cmp al, 0x2b
jne 0x43c268
cmp esi, dword [esp + 0x24]
jne 0x43c283
jmp 0x43c352
cmp al, 0x3d
jne 0x43c27f
test byte [esp + 0x9c], 4
jne 0x43ca44
add esi, 1
jmp 0x43c2b6
test al, al
je 0x43c2b6
cmp dword [esp + 0x58], 0
je 0x43c2c1
cmp esi, dword [esp + 0x24]
je 0x43c297
cmp dword [esp + 0x40], 0
je 0x43c2a2
cmp byte [esp + 0x20], 0x26
je 0x43c882
movzx eax, byte [ebx]
test al, al
je 0x43c2ad
cmp al, 0x2c
jne 0x43c328
mov esi, dword [esp + 0x24]
jmp 0x43c36d
cmp dword [esp + 0x58], 0
jne 0x43c36d
cmp byte [esi], 0
je 0x43c36d
cmp byte [esp + 0x20], 0x2a
je 0x43c2e9
cmp byte [esp + 0x20], 0x23
je 0x43c2e9
movzx eax, byte [esp + 0x20]
cmp al, 0x3f
je 0x43c2e9
cmp al, 0x26
jne 0x43c36d
cmp byte [ebx + 1], 0x20
jne 0x43c36d
nop
jmp 0x43c2a2
movzx eax, byte [esi]
cmp byte [ebx], al
jne 0x43c2a2
cmp byte [esi + 1], 0
jne 0x43c352
movzx eax, byte [ebx + 1]
cmp al, 0x2c
je 0x43c30b
test al, al
jne 0x43c352
cmp dword [esp + 0x30], 0
je 0x43c31c
mov eax, dword [esp + 0x28]
mov dword [eax], 1
mov eax, ebx
call fcn.0043bf7c
jmp 0x43c992
cmp al, 0x7e
je 0x43c332
cmp al, 0x26
nop
jne 0x43c342
cmp edi, 1
jne 0x43c342
mov eax, ebp
add ebp, 4
mov eax, dword [eax]
mov dword [esp + 0x28], eax
add ebx, 1
movzx eax, byte [ebx]
test al, al
je 0x43c369
cmp al, 0x2c
jne 0x43c328
jmp 0x43c369
add ebx, 1
add esi, 1
movzx eax, byte [ebx]
mov byte [esp + 0x20], al
test al, al
jne 0x43c22a
jmp 0x43c3ca
mov esi, dword [esp + 0x24]
movzx eax, byte [ebx]
cmp al, 0x2a
je 0x43c495
cmp al, 0x2a
jg 0x43c3a8
cmp al, 0x23
je 0x43c717
cmp al, 0x23
jg 0x43c392
test al, al
jne 0x43c358
lea esi, [esi]
jmp 0x43c3ca
cmp al, 0x25
je 0x43c653
mov dword [esp + 0x20], ebp
cmp al, 0x26
je 0x43c886
jmp 0x43c358
cmp al, 0x2c
je 0x43c458
cmp al, 0x2c
jl 0x43c57f
cmp al, 0x3f
je 0x43c501
cmp al, 0x7e
je 0x43c868
jmp 0x43c358
cmp dword [esp + 0x50], 0
nop
je 0x43c3fc
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx - 4]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x43c3fc
add dword [esp + 0x44], 0xc
cmp dword [esp + 0x30], 0
je 0x43c1f2
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
jmp 0x43c1f2
cmp dword [esp + 0x38], 0
je 0x43ca4e
cmp dword [esp + 0x48], 0
jne 0x43ca4e
mov eax, dword [0x4969f0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
and eax, 0xfffffffe
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x24]
call fcn.0043b9b2
cmp eax, 0xffffffff
jne 0x43c9fe
jmp 0x43caee
lea edx, [ebx + 1]
cmp byte [ebx + 1], 0
je 0x43ca58
movzx eax, byte [ebx + 2]
lea ecx, [eax - 0x2b]
cmp cl, 1
jbe 0x43c475
test al, al
jne 0x43c47a
add dword [esp + 0x38], 1
mov ebx, edx
cmp edi, 1
jne 0x43c358
mov eax, ebp
add ebp, 4
mov eax, dword [eax]
mov dword [esp + 0x28], eax
jmp 0x43c358
mov eax, ebx
cmp byte [esi], 0
jne 0x43c4d1
cmp byte [ebx + 1], 0x5f
je 0x43c4da
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
cmp edx, 1
jle 0x43ca62
sub edx, 1
mov dword [ecx], edx
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx]
lea ecx, [edx + 4]
mov esi, dword [esp + 0x94]
mov dword [esi], ecx
mov esi, dword [edx + 4]
movzx edx, byte [eax + 1]
cmp dl, 0x5f
jne 0x43c4df
lea ebx, [eax + 1]
jmp 0x43c4e8
add eax, 1
cmp dl, 0x20
cmove ebx, eax
cmp dword [esp + 0x30], 0
je 0x43c4f5
mov eax, dword [esp + 0x28]
mov dword [eax], esi
mov eax, ebx
call fcn.0043bf7c
jmp 0x43c992
cmp byte [esi], 0
jne 0x43c542
cmp byte [ebx + 1], 0x5f
je 0x43c54a
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
cmp eax, 1
jle 0x43ca6c
sub eax, 1
mov ecx, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
lea edx, [eax + 4]
mov ecx, dword [esp + 0x94]
mov dword [ecx], edx
mov esi, dword [eax + 4]
movzx eax, byte [ebx + 1]
cmp al, 0x5f
jne 0x43c54f
add ebx, 1
jmp 0x43c559
cmp al, 0x20
sete al
movzx eax, al
add ebx, eax
movzx eax, byte [esi]
test al, al
je 0x43c566
cmp byte [esi + 1], 0
jne 0x43c594
cmp dword [esp + 0x30], 0
je 0x43c573
mov ecx, dword [esp + 0x28]
mov byte [ecx], al
mov eax, ebx
call fcn.0043bf7c
jmp 0x43c992
cmp byte [esi], 0
jne 0x43c79f
nop
lea esi, [esi]
jmp 0x43c5ac
mov ebx, eax
movzx eax, byte [ebx]
cmp al, 0x2c
je 0x43c7c5
test al, al
jne 0x43c79f
jmp 0x43c7c5
cmp dword [esp + 0x2c], ebx
je 0x43c79f
cmp byte [ebx - 1], 0x2c
je 0x43c79f
mov edx, ebx
movzx eax, byte [ebx + 1]
and eax, 0xffffffdf
cmp al, 0x4c
jne 0x43c602
movzx eax, byte [ebx + 2]
and eax, 0xffffffdf
cmp al, 0x4c
jne 0x43c5ef
cmp dword [esp + 0x30], 0
je 0x43c5ea
mov eax, dword [esp + 0x28]
add dword [eax], 1
adc dword [eax + 4], 0
lea ebx, [edx + 2]
jmp 0x43c647
cmp dword [esp + 0x30], 0
je 0x43c5fd
mov eax, dword [esp + 0x28]
add dword [eax], 1
lea ebx, [edx + 1]
jmp 0x43c647
cmp al, 0x53
jne 0x43c61a
cmp dword [esp + 0x30], 0
je 0x43c615
mov eax, dword [esp + 0x28]
add word [eax], 1
lea ebx, [edx + 1]
jmp 0x43c647
cmp al, 0x43
jne 0x43c631
cmp dword [esp + 0x30], 0
je 0x43c62c
mov eax, dword [esp + 0x28]
add byte [eax], 1
lea ebx, [edx + 1]
jmp 0x43c647
add edx, 1
cmp al, 0x49
cmove ebx, edx
cmp dword [esp + 0x30], 0
je 0x43c647
mov eax, dword [esp + 0x28]
add dword [eax], 1
mov eax, ebx
call fcn.0043bf7c
jmp 0x43c992
cmp byte [esi], 0
jne 0x43c79f
lea eax, [ebx + 1]
movzx edx, byte [ebx + 1]
cmp dl, 0x31
je 0x43c678
cmp dl, 0x30
jne 0x43c592
mov ecx, 0
jmp 0x43c67d
mov ecx, 1
mov edi, ecx
sar edi, 0x1f
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edi
movzx edx, byte [ebx + 2]
and edx, 0xffffffdf
cmp dl, 0x4c
jne 0x43c6c8
movzx eax, byte [ebx + 3]
and eax, 0xffffffdf
cmp al, 0x4c
jne 0x43c6b6
cmp dword [esp + 0x30], 0
je 0x43c6b1
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
mov dword [eax + 4], edi
lea eax, [ebx + 3]
jmp 0x43c70d
cmp dword [esp + 0x30], 0
je 0x43c6c3
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
lea eax, [ebx + 2]
jmp 0x43c70d
cmp dl, 0x53
jne 0x43c6e0
cmp dword [esp + 0x30], 0
je 0x43c6db
mov eax, dword [esp + 0x28]
mov word [eax], cx
lea eax, [ebx + 2]
jmp 0x43c70d
cmp dl, 0x43
jne 0x43c6f7
cmp dword [esp + 0x30], 0
je 0x43c6f2
mov eax, dword [esp + 0x28]
mov byte [eax], cl
lea eax, [ebx + 2]
jmp 0x43c70d
add ebx, 2
cmp dl, 0x49
cmove eax, ebx
cmp dword [esp + 0x30], 0
je 0x43c70d
mov edx, dword [esp + 0x28]
mov dword [edx], ecx
call fcn.0043bf7c
jmp 0x43c992
cmp byte [esi], 0
jne 0x43c758
cmp byte [ebx + 1], 0x5f
je 0x43c760
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
cmp eax, 1
jle 0x43ca73
sub eax, 1
mov ecx, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
lea edx, [eax + 4]
mov ecx, dword [esp + 0x94]
mov dword [ecx], edx
mov esi, dword [eax + 4]
movzx eax, byte [ebx + 1]
cmp al, 0x5f
jne 0x43c765
add ebx, 1
jmp 0x43c76f
cmp al, 0x20
sete al
movzx eax, al
add ebx, eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0043a59a
cmp byte [eax], 0
jne 0x43c594
mov edx, ebx
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
movzx eax, byte [ebx + 1]
and eax, 0xffffffdf
cmp al, 0x4c
jne 0x43c81a
jmp 0x43c7e8
cmp al, 0x7e
je 0x43c7a7
cmp al, 0x26
jne 0x43c7b7
cmp edi, 1
jne 0x43c7b7
mov eax, ebp
add ebp, 4
mov eax, dword [eax]
mov dword [esp + 0x28], eax
add ebx, 1
movzx eax, byte [ebx]
test al, al
je 0x43c7c5
cmp al, 0x2c
jne 0x43c79f
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov esi, dword [esp + 0x24]
jmp 0x43c358
movzx eax, byte [ebx + 2]
and eax, 0xffffffdf
cmp al, 0x4c
jne 0x43c808
cmp dword [esp + 0x30], 0
je 0x43c803
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
mov dword [eax + 4], esi
lea ebx, [edx + 2]
jmp 0x43c85c
cmp dword [esp + 0x30], 0
je 0x43c815
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
lea ebx, [edx + 1]
jmp 0x43c85c
cmp al, 0x53
jne 0x43c831
cmp dword [esp + 0x30], 0
je 0x43c82c
mov eax, dword [esp + 0x28]
mov word [eax], cx
lea ebx, [edx + 1]
jmp 0x43c85c
cmp al, 0x43
jne 0x43c847
cmp dword [esp + 0x30], 0
je 0x43c842
mov eax, dword [esp + 0x28]
mov byte [eax], cl
lea ebx, [edx + 1]
jmp 0x43c85c
add edx, 1
cmp al, 0x49
cmove ebx, edx
cmp dword [esp + 0x30], 0
je 0x43c85c
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
mov eax, ebx
call fcn.0043bf7c
jmp 0x43c992
cmp byte [esi], 0
jne 0x43c79f
cmp dword [esp + 0x58], 0
jne 0x43ca7a
mov dword [esp + 0x20], ebp
jmp 0x43c8d7
mov dword [esp + 0x20], ebp
cmp byte [esi], 0
jne 0x43c8cc
cmp byte [ebx + 1], 0x5f
je 0x43c8d2
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
cmp eax, 1
jle 0x43ca81
sub eax, 1
mov ecx, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
lea edx, [eax + 4]
mov ecx, dword [esp + 0x94]
mov dword [ecx], edx
mov esi, dword [eax + 4]
cmp byte [ebx], 0x26
jne 0x43c8d7
cmp byte [ebx + 1], 0x5f
jne 0x43c8d7
add ebx, 1
jmp 0x43c8e3
cmp byte [ebx + 1], 0x20
sete al
movzx eax, al
add ebx, eax
mov eax, ebx
call fcn.0043bf7c
cmp eax, 1
jne 0x43caee
cmp edi, 3
jne 0x43c942
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
test eax, eax
je 0x43ca88
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
mov edx, dword [ecx + 4]
mov dword [esp + 4], edx
mov dword [esp], esi
call eax
cmp eax, 0xfffffffd
jne 0x43c992
add ebx, 1
mov ebp, dword [esp + 0x20]
jmp 0x43c358
cmp dword [esp + 0x30], 0
je 0x43c99b
mov eax, dword [esp + 0x20]
lea ebp, [eax + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x43ca8f
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], esi
call ecx
cmp eax, 0xfffffffd
jne 0x43c992
add ebx, 1
jmp 0x43c358
cmp eax, 1
jne 0x43caee
mov eax, dword [esp + 0x90]
sub dword [eax], 1
mov eax, dword [esp + 0x94]
add dword [eax], 4
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
test edx, edx
jg 0x43c053
jmp 0x43c9cc
mov eax, 0
jmp 0x43caee
mov eax, 0
jmp 0x43caee
mov eax, 1
jmp 0x43caee
mov eax, 0
jmp 0x43caee
mov eax, 1
jmp 0x43caee
mov eax, 1
jmp 0x43caee
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x24]
call fcn.0043b9b2
jmp 0x43c992
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xfffffffe
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xffffffff
jmp 0x43caee
mov eax, 0xfffffffe
jmp 0x43caee
mov eax, 0xfffffffe
jmp 0x43caee
mov eax, ebx
call fcn.0043b96d
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp byte [ebx + 1], 0x2d
jne 0x43c0f7
jmp 0x43c110
mov eax, ebx
call fcn.0043b96d
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0
jmp 0x43c131
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret