Function at 0x403e95
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x104]
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov ax, word [edx]
cmp al, 0x40
je 0x403ec1
cmp ax, 0x405c
je 0x403ec4
jmp 0x403ecf
or ch, 0x80
inc edx
mov dword [ebp + 0x10], edx
jmp 0x403ecf
xor ecx, ecx
mov edx, dword [ebp + 0x10]
or ch, 1
jmp 0x403ed7
and ch, 0x92
mov al, byte [edx]
xor cl, cl
test al, al
je 0x4045b6
cmp al, 0x5c
je 0x403f6c
cmp al, 0x7c
je 0x403f28
cmp al, 0x60
je 0x403f28
cmp al, 0xb4
je 0x403f28
cmp al, 0x26
je 0x403ff3
cmp al, 0x24
je 0x40406f
cmp al, 0x23
je 0x404122
cmp al, 0x25
je 0x403f31
cmp al, 0x2e
je 0x403f64
cmp al, 0x5b
je 0x4041f6
mov byte [ebx], al
inc cl
jmp 0x404500
xor ch, 2
inc edx
jmp 0x403ed7
inc edx
jmp 0x403ed4
mov ax, word [edx + 1]
sub ax, 0x3030
cmp al, 0xa
jb 0x403f3f
sub al, 7
cmp ah, 0xa
jb 0x403f47
sub ah, 7
and ax, 0xf0f
shl al, 4
or al, ah
movzx eax, al
sub edi, eax
add edx, 3
cmp edi, dword [ebp + 8]
cmovb edi, dword [ebp + 8]
jmp 0x403ed7
or ch, 0x40
jmp 0x404500
mov ah, byte [edx + 1]
mov al, byte [edx + 1]
cmp ah, 0x7c
je 0x403fed
cmp ah, 0x60
je 0x403fed
cmp ah, 0xb4
je 0x403fed
cmp ah, 0x26
je 0x403fed
cmp ah, 0x24
je 0x403fed
cmp ah, 0x23
je 0x403fed
cmp ah, 0x25
je 0x403fed
cmp ah, 0x2e
je 0x403fed
cmp ah, 0x5b
je 0x403fed
mov al, 0xa
cmp ah, 0x6e
je 0x403fed
mov al, 0xd
cmp ah, 0x72
je 0x403fed
mov al, 9
cmp ah, 0x74
je 0x403fed
xor al, al
cmp ah, 0x30
je 0x403fed
mov al, 0x5c
cmp ah, 0x5c
je 0x403fed
cmp ah, 0x78
jne 0x403f1f
mov ax, word [edx + 2]
add edx, 2
sub ax, 0x3030
cmp al, 0xa
jb 0x403fdc
sub al, 7
cmp ah, 0xa
jb 0x403fe4
sub ah, 7
and ax, 0xf0f
shl al, 4
or al, ah
inc edx
jmp 0x403f1f
mov al, byte [edx + 1]
inc edx
test al, al
je 0x4045a8
cmp al, 0x26
je 0x403f2b
cmp al, 0x5c
je 0x404010
mov byte [edi], al
inc edi
jmp 0x403ff3
mov ah, byte [edx + 1]
mov al, byte [edx + 1]
cmp ah, 0x26
je 0x404065
mov al, 0xa
cmp ah, 0x6e
je 0x404065
mov al, 0xd
cmp ah, 0x72
je 0x404065
mov al, 9
cmp ah, 0x74
je 0x404065
xor al, al
cmp ah, 0x30
je 0x404065
mov al, 0x5c
cmp ah, 0x5c
je 0x404065
cmp ah, 0x78
jne 0x40400b
mov ax, word [edx + 2]
add edx, 2
sub ax, 0x3030
cmp al, 0xa
jb 0x404054
sub al, 7
cmp ah, 0xa
jb 0x40405c
sub ah, 7
and ax, 0xf0f
shl al, 4
or al, ah
inc edx
jmp 0x40400b
movzx eax, cl
sub edx, eax
xor cl, cl
mov al, byte [edx + 1]
inc edx
inc cl
test al, al
je 0x4045a8
cmp al, 0x24
je 0x403f2e
cmp al, 0x5c
je 0x4040c0
test ch, 2
jne 0x4040a9
mov ah, byte [esi]
inc esi
test ah, ah
je 0x4045a8
mov byte [edi], ah
inc edi
cmp al, ah
je 0x40406f
cmp cl, 1
je 0x40408e
dec esi
dec edi
jmp 0x404068
mov ah, byte [esi]
inc esi
test ah, ah
je 0x4045a8
cmp al, ah
je 0x40406f
cmp cl, 1
je 0x4040a9
dec esi
jmp 0x404068
mov ah, byte [edx + 1]
mov al, byte [edx + 1]
cmp ah, 0x24
je 0x404115
mov al, 0xa
cmp ah, 0x6e
je 0x404115
mov al, 0xd
cmp ah, 0x72
je 0x404115
mov al, 9
cmp ah, 0x74
je 0x404115
xor al, al
cmp ah, 0x30
je 0x404115
mov al, 0x5c
cmp ah, 0x5c
je 0x404115
cmp ah, 0x78
jne 0x404089
mov ax, word [edx + 2]
add edx, 2
sub ax, 0x3030
cmp al, 0xa
jb 0x404104
sub al, 7
cmp ah, 0xa
jb 0x40410c
sub ah, 7
and ax, 0xf0f
shl al, 4
or al, ah
inc edx
jmp 0x404089
movzx eax, cl
sub edx, eax
xor cl, cl
mov al, byte [edx + 1]
inc edx
inc cl
test al, al
je 0x4045a8
cmp al, 0x23
je 0x403f2e
cmp al, 0x5c
je 0x404197
cmp al, 0x61
jb 0x404146
cmp al, 0x7a
ja 0x404146
sub al, 0x20
test ch, 2
jne 0x404173
mov ah, byte [esi]
inc esi
test ah, ah
je 0x4045a8
mov byte [edi], ah
inc edi
cmp ah, 0x61
jb 0x404166
cmp ah, 0x7a
ja 0x404166
sub ah, 0x20
cmp al, ah
je 0x404122
cmp cl, 1
je 0x40414b
dec esi
dec edi
jmp 0x40411b
mov ah, byte [esi]
inc esi
test ah, ah
je 0x4045a8
cmp ah, 0x61
jb 0x40418b
cmp ah, 0x7a
ja 0x40418b
sub ah, 0x20
cmp al, ah
je 0x404122
cmp cl, 1
je 0x404173
dec esi
jmp 0x40411b
mov ah, byte [edx + 1]
mov al, byte [edx + 1]
cmp ah, 0x23
je 0x4041f0
mov al, 0xa
cmp ah, 0x6e
je 0x4041f0
mov al, 0xd
cmp ah, 0x72
je 0x4041f0
mov al, 9
cmp ah, 0x74
je 0x4041f0
xor al, al
cmp ah, 0x30
je 0x4041f0
mov al, 0x5c
cmp ah, 0x5c
je 0x4041f0
cmp ah, 0x78
jne 0x404146
mov ax, word [edx + 2]
add edx, 2
sub ax, 0x3030
cmp al, 0xa
jb 0x4041df
sub al, 7
cmp ah, 0xa
jb 0x4041e7
sub ah, 7
and ax, 0xf0f
shl al, 4
or al, ah
inc edx
jmp 0x404146
cmp byte [edx + 1], 0x5e
jne 0x404200
or ch, 4
inc edx
mov ah, byte [edx + 1]
test ah, ah
je 0x4045a8
cmp ah, 0x5d
je 0x4044d8
cmp ah, 0x5b
je 0x4042c9
cmp ah, 0x5c
je 0x40424a
cmp ah, 0x2d
jne 0x4042bc
mov ah, byte [edx + 2]
inc edx
cmp ah, 0x5c
jne 0x404239
call 0x40424f
inc al
cmp al, ah
ja 0x4042c3
mov byte [ebx], al
inc cl
inc ebx
jmp 0x404239
push 0x4042bc
shl ecx, 0x10
mov cl, byte [edx + 2]
mov ch, byte [edx + 2]
cmp cl, 0x5b
je 0x4042b5
cmp cl, 0x5d
je 0x4042b5
cmp cl, 0x2d
je 0x4042b5
mov ch, 0xa
cmp cl, 0x6e
je 0x4042b5
mov ch, 0xd
cmp cl, 0x72
je 0x4042b5
mov ch, 9
cmp cl, 0x74
je 0x4042b5
xor ch, ch
cmp cl, 0x30
je 0x4042b5
mov ch, 0x5c
cmp cl, 0x5c
je 0x4042b5
cmp cl, 0x78
jne 0x4042b6
mov cx, word [edx + 3]
add edx, 2
sub cx, 0x3030
cmp cl, 0xa
jb 0x4042a3
sub cl, 7
cmp ch, 0xa
jb 0x4042ab
sub ch, 7
and cx, 0xf0f
shl cl, 4
or ch, cl
inc edx
mov ah, ch
shr ecx, 0x10
ret
mov byte [ebx], ah
mov al, ah
inc cl
inc ebx
inc edx
jmp 0x404200
mov eax, dword [edx + 3]
cmp eax, 0x756e6c61
je 0x404362
cmp eax, 0x64726f77
je 0x404385
cmp eax, 0x68706c61
je 0x4043ae
cmp eax, 0x6e616c62
je 0x4043c8
cmp eax, 0x72746e63
je 0x4043db
cmp eax, 0x69676964
je 0x4043f2
cmp eax, 0x70617267
je 0x404403
cmp eax, 0x65776f6c
je 0x404414
cmp eax, 0x6e697270
je 0x404425
cmp eax, 0x636e7570
je 0x404436
cmp eax, 0x63617073
je 0x40447b
cmp eax, 0x65707075
je 0x404496
cmp eax, 0x67696478
je 0x4044a7
mov ah, 0x5c
jmp 0x4042bc
mov ax, 0x5a41
call fcn.004044ca
mov ax, 0x7a61
call fcn.004044ca
mov ax, 0x3930
call fcn.004044ca
add edx, 9
jmp 0x404200
mov ax, 0x5a41
call fcn.004044ca
mov ax, 0x7a61
call fcn.004044ca
mov ax, 0x3930
call fcn.004044ca
mov byte [ebx], 0x5f
inc cl
inc ebx
add edx, 8
jmp 0x404200
mov ax, 0x5a41
call fcn.004044ca
mov ax, 0x7a61
call fcn.004044ca
add edx, 9
jmp 0x404200
mov word [ebx], 0x920
add cl, 2
add ebx, 2
add edx, 9
jmp 0x404200
mov ax, 0x1f00
call fcn.004044ca
mov byte [ebx], 0x7f
inc cl
inc ebx
add edx, 9
jmp 0x404200
mov ax, 0x3930
call fcn.004044ca
add edx, 9
jmp 0x404200
mov ax, 0x7e21
call fcn.004044ca
add edx, 9
jmp 0x404200
mov ax, 0x7a61
call fcn.004044ca
add edx, 9
jmp 0x404200
mov ax, 0x7e20
call fcn.004044ca
add edx, 9
jmp 0x404200
mov dword [ebx], 0x24232221
mov dword [ebx + 4], 0x28272625
mov dword [ebx + 8], 0x2c2b2a29
mov dword [ebx + 0xc], 0x3a2f2e2d
mov dword [ebx + 0x10], 0x3e3d3c3b
mov dword [ebx + 0x14], 0x5c5b403f
mov dword [ebx + 0x18], 0x605f5e5d
mov dword [ebx + 0x1c], 0x7e7d7c7b
add cl, 0x20
add ebx, 0x20
add edx, 9
jmp 0x404200
mov dword [ebx], 0xa0d0920
mov dword [ebx + 4], 0x1211
add cl, 6
add ebx, 6
add edx, 9
jmp 0x404200
mov ax, 0x5a41
call fcn.004044ca
add edx, 9
jmp 0x404200
mov ax, 0x4641
call fcn.004044ca
mov ax, 0x6661
call fcn.004044ca
mov ax, 0x3930
call fcn.004044ca
add edx, 0xa
jmp 0x404200
inc edx
test cl, cl
je 0x4044fa
mov ah, byte [edx + 1]
mov al, 8
cmp ah, 0x2a
je 0x4044f5
mov al, 0x10
cmp ah, 0x2b
je 0x4044f5
mov al, 0x20
cmp ah, 0x3f
jne 0x404500
or ch, al
inc edx
jmp 0x404500
or ch, 0x40
and ch, 0xfb
lea ebx, [ebp - 0x104]
push ecx
test ch, 0x40
jne 0x404576
mov ah, byte [esi]
test ah, ah
je 0x4045a5
xor ch, ch
mov al, cl
dec al
xlatb
cmp al, ah
loopne 0x404518
mov cx, word [esp]
sete cl
test ch, 4
setne ch
xor cl, ch
mov cx, word [esp]
jne 0x404576
test ch, 0x28
jne 0x404566
test ch, 0x80
jne 0x4045a8
test ch, 1
je 0x404548
inc esi
jmp 0x40450c
add esp, 4
cmp byte [ebp - 4], 1
je 0x404559
mov edi, dword [ebp + 8]
jmp 0x403eca
mov byte [ebp - 4], 0
inc esi
mov edi, dword [ebp + 8]
jmp 0x403eca
test ch, 1
setne byte [ebp - 4]
add esp, 4
inc edx
jmp 0x403ed4
add esp, 4
test ch, 2
jne 0x404581
mov byte [edi], ah
inc edi
inc esi
test ch, 0x10
jne 0x404592
test ch, 8
jne 0x40459d
inc edx
jmp 0x403ed4
or ch, 8
and ch, 0xef
jmp 0x404506
sub esp, 4
jmp 0x40450c
add esp, 4
test ch, 8
je 0x4045b3
cmp byte [edx + 1], 0
je 0x4045b6
mov edi, dword [ebp + 8]
mov ecx, 1
cmp dword [ebp + 8], 0
je 0x4045cb
mov byte [edi], 0
mov ecx, edi
mov edx, edi
sub ecx, dword [ebp + 8]
mov eax, esi
sub edx, ecx
pop edi
pop esi
pop ebx
leave
ret 0xc