Function at 0x3860d600
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x7076dbc]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x54], eax
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x48], ebx
test edx, edx
je 0x3860de91
mov eax, dword [ebp + 0x10]
cmp eax, 0x14
jb 0x3860de91
test ecx, ecx
je 0x3860de91
cmp dword [ebp + 0x1c], 4
jb 0x3860de91
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebx + 0x34]
push esi
mov dword [ebp - 0x38], ecx
xor esi, esi
mov ecx, dword [ebx + 0x50]
xor ebx, ebx
push edi
mov dword [ebp - 0x4c], ecx
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x34], edi
add eax, 0xffffffec
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x50], eax
je 0x3860de75
mov esi, dword [ebp + 0x20]
lea ebx, [ebx]
cmp ebx, dword [ebp + 0x14]
jae 0x3860de73
test ebx, 0x3fff
jne 0x3860d6ca
push 2
push dword [ebp - 0x48]
call 0x37ac3a70
add esp, 8
test ax, ax
jne 0x3860de70
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edi + edx]
add edi, edx
movzx ecx, word [eax*2 + 0x742c5a8]
movzx eax, byte [edi + 1]
movzx eax, byte [ecx + eax + 0x742c7a8]
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x3860d703
push edi
call 0x37e8df90
add esp, 4
cmp eax, 0xffffffff
je 0x3860de70
and eax, 0xf
mov dword [ebp - 0x44], eax
mov dh, byte [edi + 1]
mov cl, byte [edi]
mov bl, dh
shr bl, 3
mov bh, cl
mov ch, dh
mov dl, dh
and bh, 0xf8
shr ch, 6
and bl, 7
and dl, 7
cmp bh, 0xb8
jne 0x3860d764
mov edx, dword [edi + 1]
movzx eax, cl
mov ecx, dword [ebp - 0x38]
and eax, 7
mov dword [ebp + eax*4 - 0x24], edx
cmp edx, ecx
jbe 0x3860d8a3
sub edx, ecx
cmp edx, dword [ebp - 0x4c]
jae 0x3860d8a3
cmp edx, esi
jbe 0x3860d8a3
sub edx, esi
cmp edx, dword [ebp + 0x1c]
jae 0x3860d8a3
mov ecx, edx
mov dword [ebp - 0x28], ecx
jmp 0x3860d8a6
cmp cl, 0x81
jne 0x3860d86d
test ch, ch
jne 0x3860d812
cmp dl, 4
je 0x3860d8a3
cmp dl, 5
je 0x3860d8a3
movzx eax, dl
mov ecx, dword [ebp + eax*4 - 0x24]
sub ecx, dword [ebp - 0x38]
cmp ecx, esi
jb 0x3860de70
mov eax, dword [ebp + 0x1c]
sub ecx, esi
add eax, 0xfffffffc
cmp ecx, eax
ja 0x3860de70
mov eax, dword [edi + 2]
test bl, bl
je 0x3860d804
cmp bl, 2
je 0x3860d804
cmp bl, 5
je 0x3860d7f6
cmp bl, 3
je 0x3860d7f6
mov edx, dword [ebp - 0x2c]
cmp bl, 1
jne 0x3860d7d2
or dword [edx + ecx], eax
mov ecx, dword [ebp - 0x28]
jmp 0x3860d8a9
cmp bl, 4
jne 0x3860d7e2
and dword [edx + ecx], eax
mov ecx, dword [ebp - 0x28]
jmp 0x3860d8a9
cmp bl, 6
jne 0x3860de61
xor dword [edx + ecx], eax
mov ecx, dword [ebp - 0x28]
jmp 0x3860d8a9
mov edx, dword [ebp - 0x2c]
sub dword [edx + ecx], eax
mov ecx, dword [ebp - 0x28]
jmp 0x3860d8a9
mov edx, dword [ebp - 0x2c]
add dword [edx + ecx], eax
mov ecx, dword [ebp - 0x28]
jmp 0x3860d8a9
cmp ch, 3
jne 0x3860d8a3
mov ecx, dword [edi + 2]
test bl, bl
je 0x3860d864
cmp bl, 2
je 0x3860d864
cmp bl, 5
je 0x3860d85b
cmp bl, 3
je 0x3860d85b
cmp bl, 1
jne 0x3860d83f
movzx eax, dl
or dword [ebp + eax*4 - 0x24], ecx
jmp 0x3860d8a3
cmp bl, 4
jne 0x3860d84d
movzx eax, dl
and dword [ebp + eax*4 - 0x24], ecx
jmp 0x3860d8a3
cmp bl, 6
jne 0x3860d8a3
movzx eax, dl
xor dword [ebp + eax*4 - 0x24], ecx
jmp 0x3860d8a3
movzx eax, dl
sub dword [ebp + eax*4 - 0x24], ecx
jmp 0x3860d8a3
movzx eax, dl
add dword [ebp + eax*4 - 0x24], ecx
jmp 0x3860d8a3
cmp cl, 0x83
jne 0x3860d911
cmp ch, 3
jne 0x3860d8a3
mov dh, byte [edi + 2]
test bl, bl
je 0x3860d901
cmp bl, 2
je 0x3860d901
cmp bl, 5
je 0x3860d8f1
cmp bl, ch
je 0x3860d8f1
cmp bl, 1
jne 0x3860d8c7
movzx eax, dl
lea ecx, [ebp - 0x24]
lea ecx, [ecx + eax*4]
movzx eax, dh
or dword [ecx], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x3c]
add edi, dword [ebp - 0x44]
inc ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x3c], ebx
cmp edi, dword [ebp - 0x50]
jb 0x3860d6a0
jmp 0x3860de73
cmp bl, 4
jne 0x3860d8dc
movzx eax, dl
lea ecx, [ebp - 0x24]
lea ecx, [ecx + eax*4]
movzx eax, dh
and dword [ecx], eax
jmp 0x3860d8a3
cmp bl, 6
jne 0x3860d8a3
movzx eax, dl
lea ecx, [ebp - 0x24]
lea ecx, [ecx + eax*4]
movzx eax, dh
xor dword [ecx], eax
jmp 0x3860d8a3
movzx eax, dl
lea ecx, [ebp - 0x24]
lea ecx, [ecx + eax*4]
movzx eax, dh
sub dword [ecx], eax
jmp 0x3860d8a3
movzx eax, dl
lea ecx, [ebp - 0x24]
lea ecx, [ecx + eax*4]
movzx eax, dh
add dword [ecx], eax
jmp 0x3860d8a3
cmp cl, 0xc1
jne 0x3860d9d9
test ch, ch
jne 0x3860d96a
cmp dl, 4
je 0x3860d8a3
cmp dl, 5
je 0x3860d8a3
movzx eax, dl
mov edx, dword [ebp + eax*4 - 0x24]
sub edx, dword [ebp - 0x38]
cmp edx, esi
jb 0x3860de70
mov eax, dword [ebp + 0x1c]
sub edx, esi
add eax, 0xfffffffc
cmp edx, eax
ja 0x3860de70
movzx ecx, byte [edi + 2]
mov edi, dword [ebp - 0x2c]
and ecx, 0x1f
mov eax, dword [edi + edx]
rol eax, cl
mov ecx, dword [ebp - 0x28]
mov dword [edi + edx], eax
mov edx, edi
jmp 0x3860d8a9
cmp ch, 3
jne 0x3860d8a3
mov cl, byte [edi + 2]
test bl, bl
jne 0x3860d994
movzx eax, dl
lea edx, [ebp - 0x24]
lea edx, [edx + eax*4]
movzx ecx, cl
mov eax, dword [edx]
and ecx, 0x1f
rol eax, cl
mov dword [edx], eax
jmp 0x3860d8a3
cmp bl, 1
jne 0x3860d9b3
movzx eax, dl
lea edx, [ebp - 0x24]
lea edx, [edx + eax*4]
movzx ecx, cl
mov eax, dword [edx]
and ecx, 0x1f
ror eax, cl
mov dword [edx], eax
jmp 0x3860d8a3
cmp bl, 4
jne 0x3860d9c4
movzx eax, dl
shl dword [ebp + eax*4 - 0x24], cl
jmp 0x3860d8a3
cmp bl, 5
jne 0x3860d8a3
movzx eax, dl
shr dword [ebp + eax*4 - 0x24], cl
jmp 0x3860d8a3
cmp cl, 1
je 0x3860ddaa
cmp cl, 3
je 0x3860ddaa
cmp cl, 0x29
je 0x3860ddaa
cmp cl, 0x2b
je 0x3860ddaa
cmp cl, 0x31
je 0x3860ddaa
cmp cl, 0x33
je 0x3860ddaa
cmp cl, 0x21
je 0x3860ddaa
cmp cl, 0x23
je 0x3860ddaa
cmp cl, 9
je 0x3860ddaa
cmp cl, 0xb
je 0x3860ddaa
cmp cl, 5
je 0x3860dd9f
cmp cl, 0x15
je 0x3860dd9f
cmp cl, 0x2d
je 0x3860dd94
cmp cl, 0x1d
je 0x3860dd94
cmp cl, 0x25
jne 0x3860da67
mov eax, dword [edi + 1]
and dword [ebp - 0x24], eax
jmp 0x3860d8a3
cmp cl, 0xd
jne 0x3860da77
mov eax, dword [edi + 1]
or dword [ebp - 0x24], eax
jmp 0x3860d8a3
cmp cl, 0x35
jne 0x3860da87
mov eax, dword [edi + 1]
xor dword [ebp - 0x24], eax
jmp 0x3860d8a3
cmp cl, 0x87
jne 0x3860daaf
movzx eax, dl
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x24]
mov esi, dword [edx + eax*4]
lea edx, [edx + eax*4]
movzx eax, bl
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [edx], eax
mov dword [ecx], esi
mov esi, dword [ebp + 0x20]
jmp 0x3860d8a3
movzx esi, cl
mov eax, esi
and eax, 0xf8
cmp al, 0x90
jne 0x3860dada
cmp cl, al
je 0x3860dada
mov eax, dword [ebp - 0x24]
and esi, 7
mov ecx, dword [ebp + esi*4 - 0x24]
mov dword [ebp + esi*4 - 0x24], eax
mov esi, dword [ebp + 0x20]
mov dword [ebp - 0x24], ecx
jmp 0x3860d8a3
cmp bh, 0x40
jne 0x3860daee
and esi, 7
inc dword [ebp + esi*4 - 0x24]
mov esi, dword [ebp + 0x20]
jmp 0x3860d8a3
cmp bh, 0x48
jne 0x3860db02
and esi, 7
dec dword [ebp + esi*4 - 0x24]
mov esi, dword [ebp + 0x20]
jmp 0x3860d8a3
cmp cl, 0xf7
jne 0x3860db24
mov esi, dword [ebp + 0x20]
cmp bl, 2
jne 0x3860d8a3
movzx eax, dl
lea ecx, [ebp - 0x24]
not dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
jmp 0x3860d8a3
cmp cl, 0x39
je 0x3860dd60
cmp cl, 0x3b
je 0x3860dd60
cmp cl, 0x3d
jne 0x3860db87
mov eax, dword [ebp - 0x24]
mov ecx, eax
mov edx, dword [edi + 1]
sub ecx, edx
test eax, eax
jns 0x3860db6c
test edx, edx
js 0x3860db51
test ecx, ecx
jns 0x3860db74
mov edx, dword [ebp - 0x30]
and edx, 0xfffffffb
mov esi, dword [ebp + 0x20]
test ecx, ecx
mov ecx, dword [ebp - 0x28]
jns 0x3860db7c
or edx, 2
mov dword [ebp - 0x30], edx
jmp 0x3860d8a6
test edx, edx
jns 0x3860db51
test ecx, ecx
jns 0x3860db51
mov edx, dword [ebp - 0x30]
or edx, 4
jmp 0x3860db57
and edx, 0xfffffffd
mov dword [ebp - 0x30], edx
jmp 0x3860d8a6
cmp cl, 0x89
jne 0x3860dbf8
test ch, ch
jne 0x3860dbd9
cmp dl, 4
je 0x3860daa7
mov esi, dword [ebp + 0x20]
cmp dl, 5
je 0x3860d8a3
movzx eax, dl
mov ecx, dword [ebp + eax*4 - 0x24]
sub ecx, dword [ebp - 0x38]
cmp ecx, esi
jb 0x3860de70
mov eax, dword [ebp + 0x1c]
sub ecx, esi
add eax, 0xfffffffc
cmp ecx, eax
ja 0x3860de70
mov edx, dword [ebp - 0x40]
movzx eax, bl
mov eax, dword [ebp + eax*4 - 0x24]
mov dword [edx + ecx], eax
jmp 0x3860d8a3
mov esi, dword [ebp + 0x20]
cmp ch, 3
jne 0x3860d8a3
movzx eax, bl
movzx ecx, dl
mov eax, dword [ebp + eax*4 - 0x24]
mov dword [ebp + ecx*4 - 0x24], eax
jmp 0x3860d8a3
cmp cl, 0x8b
jne 0x3860dc69
test ch, ch
jne 0x3860dc4a
cmp dl, 4
je 0x3860daa7
mov esi, dword [ebp + 0x20]
cmp dl, 5
je 0x3860d8a3
movzx eax, dl
mov edx, dword [ebp + eax*4 - 0x24]
sub edx, dword [ebp - 0x38]
cmp edx, esi
jb 0x3860de70
mov eax, dword [ebp + 0x1c]
sub edx, esi
add eax, 0xfffffffc
cmp edx, eax
ja 0x3860de70
mov eax, dword [ebp - 0x40]
movzx ecx, bl
mov eax, dword [eax + edx]
mov dword [ebp + ecx*4 - 0x24], eax
jmp 0x3860d8a3
mov esi, dword [ebp + 0x20]
cmp ch, 3
jne 0x3860d8a3
movzx eax, dl
movzx ecx, bl
mov eax, dword [ebp + eax*4 - 0x24]
mov dword [ebp + ecx*4 - 0x24], eax
jmp 0x3860d8a3
cmp cl, 0xff
jne 0x3860dc8f
cmp dword [ebp - 0x3c], 0xf6400
mov ecx, dword [ebp - 0x28]
jbe 0x3860dc87
cmp bl, 2
jne 0x3860dc87
test ecx, ecx
jne 0x3860de69
mov esi, dword [ebp + 0x20]
jmp 0x3860d8a6
cmp cl, 0xf
jne 0x3860dd36
mov al, dh
and al, 0xf8
cmp al, 0xc8
jne 0x3860dcda
movzx ecx, dh
and ecx, 7
mov esi, dword [ebp + ecx*4 - 0x24]
mov edx, esi
mov eax, esi
and edx, 0xff00
shl eax, 0x10
or edx, eax
shr esi, 8
movzx eax, byte [ebp + ecx*4 - 0x21]
and esi, 0xff00
shl edx, 8
or edx, eax
or edx, esi
mov esi, dword [ebp + 0x20]
mov dword [ebp + ecx*4 - 0x24], edx
jmp 0x3860d8a3
cmp dh, 0x85
jne 0x3860dd00
test byte [ebp - 0x30], 8
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
jne 0x3860d8a9
mov eax, dword [ebp - 0x34]
add eax, dword [edi + 2]
mov dword [ebp - 0x34], eax
jmp 0x3860d8a9
cmp dh, 0x8c
jne 0x3860daa7
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x2c]
shr ecx, 2
shr eax, 1
xor cl, al
test cl, 1
mov ecx, dword [ebp - 0x28]
je 0x3860d8a9
mov eax, dword [ebp - 0x34]
add eax, dword [edi + 2]
mov dword [ebp - 0x34], eax
jmp 0x3860d8a9
cmp cl, 0xe9
jne 0x3860dd4c
mov eax, dword [ebp - 0x34]
add eax, dword [edi + 1]
mov esi, dword [ebp + 0x20]
mov dword [ebp - 0x34], eax
jmp 0x3860d8a3
cmp cl, 0xc3
mov ecx, dword [ebp - 0x28]
je 0x3860de73
mov esi, dword [ebp + 0x20]
jmp 0x3860d8a6
cmp ch, 3
jne 0x3860daa7
mov esi, dword [ebp + 0x20]
movzx eax, dl
mov edx, dword [ebp - 0x2c]
movzx ecx, bl
mov eax, dword [ebp + eax*4 - 0x24]
cmp eax, dword [ebp + ecx*4 - 0x24]
mov ecx, dword [ebp - 0x28]
jne 0x3860dd8b
or dword [ebp - 0x30], 8
jmp 0x3860d8a9
and dword [ebp - 0x30], 0xfffffff7
jmp 0x3860d8a9
mov eax, dword [edi + 1]
sub dword [ebp - 0x24], eax
jmp 0x3860d8a3
mov eax, dword [edi + 1]
add dword [ebp - 0x24], eax
jmp 0x3860d8a3
cmp ch, 3
jne 0x3860d8a3
mov ch, dl
cmp cl, 3
je 0x3860ddce
cmp cl, 0x2b
je 0x3860ddce
cmp cl, 0x33
je 0x3860ddce
cmp cl, 0x23
je 0x3860ddce
cmp cl, 0xb
jne 0x3860ddd2
mov ch, bl
mov bl, dl
movzx eax, cl
dec eax
cmp eax, 0x32
ja 0x3860d8a3
movzx eax, byte [eax + 0x7bac2bc]
jmp dword [eax*4 + 0x7bac2a4]
mov ecx, dword [ebp - 0x28]
jmp 0x3860d8a9
mov esi, 1
jmp 0x3860de75
mov ecx, dword [ebp - 0x28]
xor esi, esi
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x3860de7e
mov dword [eax], ecx
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x37ac2614
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
pop ebx
call 0x37ac2614
mov esp, ebp
pop ebp
ret