Function at 0x20134f3a
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push ebx
push ebp
push esi
mov ebp, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
cmp ebp, edx
push edi
mov dword [esp + 0x14], ebp
mov esi, ebp
je 0x201357b9
mov ax, word [ebp]
cmp ax, 0x7c
je 0x201357b9
movzx eax, ax
xor edi, edi
sub eax, 0x28
je 0x201356ad
sub eax, 6
je 0x2013566f
sub eax, 0x2d
je 0x2013560e
dec eax
push 2
pop eax
jne 0x20135175
mov bx, word [ebp + 2]
lea esi, [ebp + 2]
cmp esi, edx
jne 0x20134fb4
push 0x38
push edi
mov eax, ecx
push edi
push dword [eax + 4]
push dword [eax]
call fcn.2016778e
add esp, 0x14
jmp 0x201355ab
movzx ebp, bx
cmp ebp, 0x6e
jg 0x20135188
je 0x201355dd
cmp ebp, 0x57
jg 0x201350ef
je 0x201350e6
cmp ebp, 0x30
je 0x201350a0
jle 0x201351b7
cmp ebp, 0x39
jle 0x20135009
cmp ebp, 0x44
je 0x20135000
cmp ebp, 0x53
jne 0x201351b7
push 0
push 0x13
jmp 0x20135527
push 0
push 0xf
jmp 0x20135527
add ebp, 0xffffffd0
add esi, eax
mov edi, 0x80
mov ax, word [esi]
cmp ax, di
jae 0x2013505b
mov ecx, dword [0x68132994]
movzx ebx, ax
cmp dword [ecx], 1
jle 0x20135036
push 4
push ebx
call dword [0x68132998]
pop ecx
pop ecx
jmp 0x20135043
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 4
test eax, eax
je 0x2013505b
lea eax, [ebp + ebp*4]
shl eax, 1
mov ebp, eax
sub ebp, ebx
add ebp, 0x30
inc esi
inc esi
mov ax, word [esi]
jmp 0x20135016
cmp ebp, 9
jbe 0x2013507a
mov eax, dword [esp + 0x20]
cmp ebp, dword [eax + 0x18]
jbe 0x2013507a
mov eax, dword [eax]
test byte [eax + 0x164], 1
jne 0x2013507a
mov esi, dword [esp + 0x14]
jmp 0x201350af
push 0
push 0x14
push dword [esp + 0x28]
dec esi
dec esi
call fcn.20134991
mov edi, eax
test edi, edi
je 0x201355ab
dec ebp
mov byte [edi + 1], 4
mov dword [edi + 0xc], ebp
jmp 0x20135607
mov eax, dword [ecx]
test byte [eax + 0x164], 1
jne 0x20135607
xor ebx, ebx
inc esi
inc esi
mov ax, word [esi]
cmp ax, 0x30
jb 0x201350df
mov ecx, 0xff
cmp ax, 0x37
ja 0x201350df
movzx eax, ax
lea eax, [eax + ebx*8 - 0x30]
cmp eax, ecx
ja 0x201350df
inc esi
mov ebx, eax
inc esi
mov ax, word [esi]
cmp ax, 0x30
jae 0x201350c1
dec esi
dec esi
jmp 0x20135523
push 0
push 0x11
jmp 0x20135527
sub ebp, 0x63
je 0x2013510d
dec ebp
je 0x20135104
sub ebp, eax
je 0x201355dd
jmp 0x201351b7
push 0
push 0xe
jmp 0x20135527
add esi, eax
mov ax, word [esi]
cmp ax, 0x80
jae 0x2013516c
mov ecx, dword [0x68132994]
movzx edi, ax
cmp dword [ecx], 1
jle 0x20135136
push 0x103
push edi
call dword [0x68132998]
pop ecx
pop ecx
jmp 0x20135146
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov ax, word [eax + edi*2]
and eax, 0x103
test eax, eax
je 0x2013516c
push edi
call fcn.2015e834
test eax, 0x100000
je 0x20135162
push edi
call fcn.2015e834
sar eax, 0x16
sub edi, eax
mov ebx, edi
xor ebx, 0x40
jmp 0x20135523
sub esi, 4
mov ecx, dword [esp + 0x20]
mov ebp, esi
inc esi
inc esi
mov di, word [esi]
test di, di
je 0x20135559
jmp 0x2013553b
sub ebp, 0x72
je 0x201355dd
dec ebp
je 0x201355d4
dec ebp
je 0x201355dd
dec ebp
je 0x201352f2
dec ebp
je 0x201355dd
dec ebp
je 0x201352e9
dec ebp
je 0x201351bb
mov ebp, esi
jmp 0x20135175
mov dword [esp + 0x14], esi
add esi, eax
mov edi, 0x80
mov ax, word [esi]
cmp ax, di
jae 0x201352c5
mov ecx, dword [0x68132994]
mov ebx, dword [0x68132998]
movzx ebp, ax
cmp dword [ecx], 1
jle 0x201351ee
push edi
push ebp
call ebx
pop ecx
pop ecx
jmp 0x201351fa
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, edi
test eax, eax
je 0x201352c5
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x20135215
push 4
push ebp
call ebx
pop ecx
pop ecx
jmp 0x20135222
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, 4
test eax, eax
je 0x2013522f
add ebp, 0xffffffd0
mov dword [esp + 0x10], ebp
jmp 0x2013523e
push ebp
call dword [0x68132948]
sub eax, 0x57
pop ecx
mov dword [esp + 0x10], eax
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jae 0x201352ad
mov ecx, dword [0x68132994]
movzx ebp, ax
cmp dword [ecx], 1
jle 0x2013525e
push edi
push ebp
call ebx
pop ecx
pop ecx
jmp 0x2013526a
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, edi
test eax, eax
je 0x201352ad
mov eax, dword [0x68132994]
shl dword [esp + 0x10], 4
cmp dword [eax], 1
jle 0x20135286
push 4
push ebp
call ebx
pop ecx
pop ecx
jmp 0x20135293
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, 4
test eax, eax
je 0x2013529c
lea eax, [ebp - 0x30]
jmp 0x201352a7
push ebp
call dword [0x68132948]
pop ecx
sub eax, 0x57
add dword [esp + 0x10], eax
jmp 0x201352d1
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x201352c5
cmp eax, 0x8c
jg 0x201352c5
dec esi
dec esi
jmp 0x201352d1
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], 0x78
push 0
push 0x16
push dword [esp + 0x28]
call fcn.20134991
mov edi, eax
mov ebx, dword [esp + 0x10]
jmp 0x201355fb
push 0
push 0x10
jmp 0x20135527
mov ax, word [esi + 2]
mov edi, 0x80
cmp ax, di
jae 0x2013516f
mov ecx, dword [0x68132994]
mov ebp, dword [0x68132998]
cmp dword [ecx], 1
jle 0x20135320
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x20135330
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013516f
mov ax, word [esi + 4]
cmp ax, di
jae 0x2013516f
mov ecx, dword [0x68132994]
cmp dword [ecx], 1
jle 0x2013535b
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x2013536b
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013516f
mov ax, word [esi + 6]
cmp ax, di
jae 0x2013516f
mov ecx, dword [0x68132994]
cmp dword [ecx], 1
jle 0x20135396
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x201353a6
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013516f
lea eax, [esi + 8]
mov dword [esp + 0x10], eax
mov ax, word [eax]
cmp ax, di
jae 0x2013516f
mov ecx, dword [0x68132994]
cmp dword [ecx], 1
jle 0x201353d7
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x201353e7
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013516f
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x20135406
movzx eax, word [esi + 2]
push 4
push eax
call ebp
pop ecx
pop ecx
jmp 0x20135418
mov ecx, dword [0x68132990]
movzx eax, word [esi + 2]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x20135425
movzx edi, word [esi + 2]
sub edi, 0x30
jmp 0x20135436
movzx eax, word [esi + 2]
push eax
call dword [0x68132948]
mov edi, eax
pop ecx
sub edi, 0x57
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x2013544d
movzx eax, word [esi + 4]
push 4
push eax
call ebp
pop ecx
pop ecx
jmp 0x2013545f
mov ecx, dword [0x68132990]
movzx eax, word [esi + 4]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x2013546c
movzx ebx, word [esi + 4]
sub ebx, 0x30
jmp 0x2013547d
movzx eax, word [esi + 4]
push eax
call dword [0x68132948]
mov ebx, eax
pop ecx
sub ebx, 0x57
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x20135494
movzx eax, word [esi + 6]
push 4
push eax
call ebp
pop ecx
pop ecx
jmp 0x201354a6
mov ecx, dword [0x68132990]
movzx eax, word [esi + 6]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x201354b3
movzx esi, word [esi + 6]
sub esi, 0x30
jmp 0x201354c4
movzx eax, word [esi + 6]
push eax
call dword [0x68132948]
mov esi, eax
pop ecx
sub esi, 0x57
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x201354de
mov eax, dword [esp + 0x10]
push 4
movzx eax, word [eax]
push eax
call ebp
pop ecx
pop ecx
jmp 0x201354f3
mov eax, dword [esp + 0x10]
mov ecx, dword [0x68132990]
movzx eax, word [eax]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
je 0x20135503
sub eax, 0x30
jmp 0x2013550e
push eax
call dword [0x68132948]
pop ecx
sub eax, 0x57
shl edi, 4
add edi, ebx
shl edi, 4
add edi, esi
mov esi, dword [esp + 0x10]
shl edi, 4
add edi, eax
mov ebx, edi
push 0
push 0x16
push dword [esp + 0x28]
call fcn.20134991
mov edi, eax
jmp 0x201355fb
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx + 0xc]
je 0x20135559
push edi
push 0x6814d360
call fcn.2016480b
test eax, eax
jne 0x20135559
inc esi
inc esi
mov di, word [esi]
test di, di
jne 0x20135537
mov eax, dword [esp + 0x20]
mov ebx, esi
sub ebx, ebp
sar ebx, 1
cmp esi, dword [eax + 0xc]
je 0x2013557f
cmp ebx, 1
jbe 0x2013557f
push edi
push 0x6814d37c
call fcn.2016480b
test eax, eax
je 0x2013557f
dec esi
dec esi
dec ebx
mov ecx, 0xff
cmp ebx, ecx
jbe 0x20135590
mov ebx, ecx
lea esi, [ebp + 0x1fe]
mov eax, ebx
push ebp
dec eax
neg eax
sbb eax, eax
add eax, 0x16
push eax
push dword [esp + 0x28]
call fcn.20134991
mov edi, eax
test edi, edi
jne 0x201355b2
xor eax, eax
jmp 0x201357c6
cmp ebx, 1
mov byte [edi + 1], 4
jbe 0x201355c3
mov dword [edi + 0xc], esi
jmp 0x201357ae
mov byte [edi + 1], 6
mov ax, word [ebp]
mov word [edi + 0xc], ax
jmp 0x201357ae
push 0
push 0x12
jmp 0x20135527
push 0
push 0x16
push dword [esp + 0x28]
call fcn.20134991
push ebx
push 0x6814f06c
mov edi, eax
call fcn.2016480b
mov bx, word [eax - 2]
test edi, edi
je 0x20135607
mov word [edi + 0xc], bx
mov byte [edi + 1], 6
inc esi
inc esi
jmp 0x201357ae
mov ebx, dword [esp + 0x20]
lea esi, [ebp + 2]
push esi
push 0xd
push ebx
call fcn.20134991
mov edi, eax
xor edx, edx
cmp edi, edx
je 0x201355ab
mov ecx, dword [ebx + 0xc]
cmp esi, ecx
je 0x20135646
mov ax, word [esi]
inc esi
inc esi
cmp ax, 0x5d
je 0x2013565d
cmp ax, 0x5c
jne 0x20135629
cmp esi, ecx
je 0x20135646
inc esi
inc esi
jmp 0x20135629
push ebp
push 0x37
push edx
push edx
push dword [ebx + 4]
push dword [ebx]
call fcn.2016778e
add esp, 0x18
jmp 0x201355ab
lea eax, [esi - 2]
mov dword [edi + 0x10], edx
mov dword [edi + 0xc], eax
mov byte [edi + 1], 6
jmp 0x201357ae
cmp word [ebp + 2], 0x2a
lea esi, [ebp + 2]
push 0xc
pop ebx
jne 0x2013568c
inc esi
push 0x18
inc esi
pop ebx
cmp word [esi], 0x3f
jne 0x2013568c
inc esi
push 0x26
inc esi
pop ebx
push 0
push ebx
push dword [esp + 0x28]
call fcn.20134991
mov edi, eax
test edi, edi
je 0x201357ae
cmp ebx, 0xc
jne 0x201357ae
jmp 0x20135666
or dword [esp + 0x10], 0xffffffff
cmp word [ebp + 2], 0x3f
lea esi, [ebp + 2]
push 0x29
pop edi
jne 0x2013570c
movzx eax, word [ebp + 4]
cmp eax, 0x21
je 0x20135702
cmp eax, 0x3a
je 0x201356f8
cmp eax, 0x3d
jne 0x2013570c
mov dword [esp + 0x14], edi
lea esi, [ebp + 6]
mov dword [ecx + 0x10], esi
cmp word [esi], di
jne 0x20135721
push 0
push 0
push dword [esp + 0x28]
call fcn.20134991
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
jmp 0x2013574b
mov dword [esp + 0x14], 0x27
jmp 0x201356d6
mov dword [esp + 0x14], 0x2a
jmp 0x201356d6
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x10], eax
inc eax
mov dword [ecx + 0x18], eax
jmp 0x201356d9
mov ebx, dword [esp + 0x20]
push ebx
call fcn.20134ac7
test eax, eax
mov dword [esp + 0x18], eax
je 0x201355ab
mov esi, dword [ebx + 0x10]
cmp word [esi], di
je 0x2013574b
push ebp
push 0x36
push 0
push 0
jmp 0x2013564b
push dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
inc esi
push ebp
push ebx
inc esi
call fcn.20134991
mov edi, eax
test edi, edi
je 0x201355ab
mov eax, dword [esp + 0x18]
mov al, byte [eax + 1]
and al, 5
cmp ebp, 0xa
mov byte [edi + 1], al
mov eax, dword [esp + 0x10]
mov dword [edi + 0xc], eax
je 0x20135783
cmp ebp, 0x27
jne 0x201357ae
inc ebp
push 0
push ebp
push ebx
call fcn.20134991
mov ebp, eax
test ebp, ebp
je 0x201355ab
push ebp
push edi
push ebx
call fcn.201349c7
test eax, eax
je 0x201355ab
mov eax, dword [esp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], esi
mov eax, edi
jmp 0x201357c6
push 0
push 0
push dword [esp + 0x28]
call fcn.20134991
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4