Function at 0x40c6e0
Capabilities:
Parse credit card information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x36c
movzx esi, word [eax]
mov dword [ebp - 0x334], ecx
movzx ecx, byte [ebp + 8]
test esi, esi
mov byte [ebp - 0x33d], cl
je 0x40cec5
add eax, 2
mov edi, edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
movzx ebx, byte [ebp - 0x33d]
and edx, 5
and eax, 0x10
mov dword [ebp - 0x330], eax
mov eax, dword [ebp + 0xc]
and ecx, 0x20
mov dword [ebp - 0x34c], edx
lea edx, [ebp - 0x11c]
mov dword [ebp - 0x344], ecx
mov dword [ebp - 0x35c], edx
and eax, 2
mov dword [ebp - 0x348], eax
mov ecx, dword [ebp - 0x330]
test ecx, ecx
je 0x40c769
mov dword [esp], esi
call sub.cygwin1.dll_towlower
mov esi, eax
lea eax, [esi - 0x21]
cmp eax, 0x3b
ja case.0x40c771.34
jmp dword [eax*4 + 0x417ba4]
mov eax, dword [ebp - 0x348]
test eax, eax
jne case.0x40c771.34
mov ecx, dword [ebp - 0x32c]
movzx esi, word [ecx]
add ecx, 2
mov dword [ebp - 0x32c], ecx
test esi, esi
je 0x40c958
mov ebx, dword [ebp - 0x330]
test ebx, ebx
je case.0x40c771.34
mov dword [esp], esi
call sub.cygwin1.dll_towlower
mov esi, eax
cmp edi, dword [ebp - 0x334]
je 0x40c958
mov eax, dword [ebp - 0x330]
test eax, eax
je 0x40cae0
movzx eax, word [edi]
mov dword [esp], eax
call sub.cygwin1.dll_towlower
cmp eax, esi
jne 0x40c958
xor eax, eax
mov ecx, dword [ebp - 0x32c]
add edi, 2
movzx esi, word [ecx]
test esi, esi
je 0x40cec7
add ecx, 2
mov ebx, eax
mov dword [ebp - 0x32c], ecx
jmp 0x40c755
mov eax, dword [0x41a7f0]
test eax, eax
je 0x40cda2
cmp edi, dword [ebp - 0x334]
je 0x40c958
movzx eax, word [edi]
cmp ax, 0x2e
je 0x40cdc0
cmp ax, 0x2f
je 0x40cea5
mov edx, dword [ebp - 0x32c]
movzx ebx, word [edx]
cmp bx, 0x21
je 0x40cddb
mov ecx, dword [0x41a7f0]
mov byte [ebp - 0x34f], 0
test ecx, ecx
js 0x40ceb5
mov ecx, dword [ebp - 0x330]
movzx eax, ax
mov dword [ebp - 0x338], eax
test ecx, ecx
je 0x40c888
mov dword [esp], eax
mov dword [ebp - 0x358], edx
call sub.cygwin1.dll_towlower
mov edx, dword [ebp - 0x358]
mov dword [ebp - 0x338], eax
mov eax, dword [ebp - 0x348]
movzx ecx, bx
mov dword [ebp - 0x354], esi
lea ebx, [edx + 2]
test eax, eax
sete byte [ebp - 0x33d]
cmp ecx, 0x5c
jne 0x40caf7
cmp byte [ebp - 0x33d], 0
je 0x40caf7
movzx eax, word [ebx]
test ax, ax
je 0x40c958
mov edx, dword [ebp - 0x330]
movzx eax, ax
test edx, edx
je 0x40c8da
mov dword [esp], eax
call sub.cygwin1.dll_towlower
movzx esi, word [ebx + 2]
lea edx, [ebx + 2]
cmp si, 0x2d
je 0x40cb23
lea ebx, [edx + 2]
cmp eax, dword [ebp - 0x338]
je 0x40cf11
movzx ecx, si
cmp ecx, 0x2d
je 0x40cba2
cmp ecx, 0x5d
jne 0x40c8a3
cmp byte [ebp - 0x34f], 0
je 0x40c958
mov dword [ebp - 0x32c], ebx
xor eax, eax
jmp 0x40c7df
mov edx, dword [ebp - 0x344]
test edx, edx
jne 0x40d171
cmp edi, dword [ebp - 0x334]
je 0x40c958
movzx edx, word [edi]
cmp dx, 0x2f
je 0x40ce00
xor eax, eax
cmp dx, 0x2e
jne 0x40c7df
test bl, bl
je 0x40c7df
mov eax, 1
add esp, 0x36c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [ebp - 0x34c], 5
jne case.0x40c771.34
cmp edi, dword [ebp - 0x334]
je 0x40c958
cmp word [edi], 0x2f
jne 0x40c958
mov eax, 1
jmp 0x40c7df
mov eax, dword [ebp + 0xc]
mov byte [ebp - 0x33d], bl
and eax, 0x20
mov dword [ebp - 0x338], eax
jne 0x40d130
cmp dword [ebp - 0x334], edi
je 0x40c9ba
cmp word [edi], 0x2e
je 0x40ce10
mov edx, dword [ebp - 0x32c]
movzx esi, word [edx]
mov ebx, edx
add ebx, 2
cmp esi, 0x3f
jne 0x40d0db
mov ecx, dword [ebp + 0xc]
and ecx, 1
mov dword [ebp - 0x32c], ecx
jmp 0x40c9f4
cmp esi, 0x3f
je 0x40cac2
movzx esi, word [ebx]
add ebx, 2
cmp esi, 0x2a
jne 0x40ca20
cmp word [ebx], 0x28
jne 0x40c9e0
mov ecx, dword [ebp - 0x338]
test ecx, ecx
je 0x40c9e0
mov eax, ebx
call fcn.0040bf70
cmp eax, ebx
je 0x40c9e0
mov ebx, eax
movzx esi, word [ebx]
add ebx, 2
cmp esi, 0x2a
je 0x40c9f4
lea esi, [esi]
cmp esi, 0x3f
je 0x40c9f4
test esi, esi
jne 0x40cc80
xor eax, eax
test byte [ebp + 0xc], 1
je 0x40c95d
test byte [ebp + 0xc], 8
jne 0x40c95d
mov eax, dword [ebp - 0x334]
mov dword [esp + 4], 0x2f
mov dword [esp], edi
sub eax, edi
sar eax, 1
mov dword [esp + 8], eax
call sub.cygwin1.dll_wmemchr
test eax, eax
setne al
movzx eax, al
jmp 0x40c95d
mov edx, dword [ebp - 0x344]
test edx, edx
je case.0x40c771.34
mov ecx, dword [ebp - 0x32c]
cmp word [ecx], 0x28
jne case.0x40c771.34
mov edx, dword [ebp - 0x334]
movzx ebx, bl
mov ecx, edi
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], ebx
mov dword [esp], edx
mov edx, dword [ebp - 0x32c]
mov dword [esp + 8], eax
mov eax, esi
call fcn.0040c120
cmp eax, 0xffffffff
je case.0x40c771.34
jmp 0x40c95d
cmp edi, dword [ebp - 0x334]
je 0x40c958
cmp word [edi], 0x2f
je 0x40cae8
add edi, 2
jmp 0x40c9e9
movzx eax, word [edi]
jmp 0x40c7d5
mov edx, dword [ebp - 0x32c]
test edx, edx
je 0x40cad4
jmp 0x40c958
cmp ecx, 0x5b
je 0x40cbc0
test ecx, ecx
je 0x40d008
mov esi, dword [ebp - 0x330]
test esi, esi
jne 0x40cb90
movzx esi, word [ebx]
mov eax, ecx
mov edx, ebx
cmp si, 0x2d
jne 0x40c8eb
movzx ecx, word [edx + 2]
lea ebx, [edx + 2]
test cx, cx
je 0x40c8ee
cmp cx, 0x5d
mov word [ebp - 0x34e], ax
mov word [ebp - 0x340], cx
je 0x40c8ee
movzx ecx, word [ebp - 0x340]
lea edx, [ebx + 2]
cmp ecx, 0x5c
jne 0x40cb63
cmp byte [ebp - 0x33d], 0
jne 0x40cb82
test ecx, ecx
je 0x40c958
cmp ecx, dword [ebp - 0x338]
jae 0x40d0e9
movzx ecx, word [edx]
lea ebx, [edx + 2]
jmp 0x40c906
movzx ecx, word [edx]
lea edx, [ebx + 4]
jmp 0x40cb63
mov dword [esp], ecx
call sub.cygwin1.dll_towlower
movzx esi, word [ebx]
mov edx, ebx
jmp 0x40c8e1
movzx edx, word [ebx]
mov word [ebp - 0x34e], ax
cmp dx, 0x5d
mov word [ebp - 0x340], dx
jne 0x40cb4b
jmp 0x40c8a3
cmp word [ebx], 0x3a
jne 0x40cb08
mov esi, ebx
xor eax, eax
nop
jmp 0x40cbf4
sub edx, 0x61
cmp edx, 0x18
ja 0x40ceef
mov word [ebp + eax*2 - 0x31c], cx
add eax, 1
cmp eax, 0x100
je 0x40c958
add esi, 2
movzx ecx, word [esi]
movzx edx, cx
cmp edx, 0x3a
jne 0x40cbd2
cmp word [esi + 2], 0x5d
jne 0x40cbd2
mov word [ebp + eax*2 - 0x31c], 0
lea ecx, [ebp - 0x119]
movzx eax, word [ebp - 0x31c]
lea edx, [ebp - 0x31c]
jmp 0x40cc6b
cmp ax, 0x41
jae 0x40cc4b
cmp ax, 0x20
jb 0x40c958
cmp ax, 0x23
jbe 0x40cc4b
lea ebx, [eax - 0x25]
cmp bx, 0x1a
ja 0x40c958
cmp edx, dword [ebp - 0x35c]
je 0x40c958
add edx, 2
mov byte [ecx], al
movzx eax, word [edx]
add ecx, 1
test ax, ax
je 0x40d090
cmp ax, 0x5f
jbe 0x40cc28
lea ebx, [eax - 0x61]
cmp bx, 0x1d
ja 0x40c958
jmp 0x40cc4b
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x334]
mov dword [esp], edi
and ecx, 1
mov edx, ecx
sub eax, edi
neg edx
and edx, 0x2f
sar eax, 1
mov dword [esp + 4], edx
mov dword [ebp - 0x358], ecx
mov dword [esp + 8], eax
call sub.cygwin1.dll_wmemchr
mov edx, dword [ebp - 0x334]
mov ecx, dword [ebp - 0x358]
test eax, eax
cmovne edx, eax
cmp esi, 0x5b
mov dword [ebp - 0x32c], edx
je 0x40ce45
mov eax, dword [ebp - 0x338]
test eax, eax
jne 0x40ce27
cmp esi, 0x2f
je 0x40cfb5
mov eax, dword [ebp + 0xc]
test ecx, ecx
mov dword [ebp - 0x338], eax
je 0x40cf00
cmp esi, 0x5c
je 0x40cff6
mov edx, dword [ebp - 0x330]
test edx, edx
je 0x40cd12
mov dword [esp], esi
call sub.cygwin1.dll_towlower
mov esi, eax
sub ebx, 2
mov eax, 1
cmp dword [ebp - 0x32c], edi
mov dword [ebp - 0x33c], ebx
jbe 0x40c95d
movzx ebx, byte [ebp - 0x33d]
mov edx, ebx
mov ebx, esi
mov esi, dword [ebp - 0x330]
jmp 0x40cd6c
movzx eax, word [edi]
mov dword [ebp - 0x358], edx
mov dword [esp], eax
call sub.cygwin1.dll_towlower
mov edx, dword [ebp - 0x358]
cmp ebx, eax
je 0x40cd77
add edi, 2
cmp dword [ebp - 0x32c], edi
jbe 0x40c958
xor edx, edx
test esi, esi
jne 0x40cd40
movzx eax, word [edi]
cmp ebx, eax
jne 0x40cd5b
mov ecx, dword [ebp - 0x338]
mov eax, dword [ebp - 0x33c]
mov dword [esp], edx
mov edx, edi
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x334]
call fcn.0040c6e0
test eax, eax
jne 0x40cd5b
xor eax, eax
jmp 0x40c95d
mov dword [esp], str.POSIXLY_CORRECT
call sub.cygwin1.dll_getenv
cmp eax, 1
sbb eax, eax
or eax, 1
mov dword [0x41a7f0], eax
jmp 0x40c810
test bl, bl
jne 0x40c958
mov edx, dword [ebp - 0x32c]
movzx ebx, word [edx]
cmp bx, 0x21
jne 0x40c846
mov edx, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x32c]
add edx, 2
movzx ebx, word [ecx + 2]
mov byte [ebp - 0x34f], 1
jmp 0x40c85b
test byte [ebp + 0xc], 1
je 0x40c7dd
jmp 0x40c958
cmp byte [ebp - 0x33d], 0
mov eax, 1
je 0x40c9ba
jmp 0x40c95d
cmp esi, 0x2b
je 0x40ce3b
cmp esi, 0x40
nop
je 0x40ce3b
cmp esi, 0x21
jne 0x40ccdb
cmp word [ebx], 0x28
jne 0x40ccdb
mov esi, dword [ebp + 0xc]
mov eax, 1
and esi, 0xfffffffb
test ecx, ecx
cmovne esi, dword [ebp + 0xc]
sub ebx, 2
cmp dword [ebp - 0x32c], edi
jbe 0x40c95d
movzx eax, byte [ebp - 0x33d]
jmp 0x40ce81
add edi, 2
cmp dword [ebp - 0x32c], edi
jbe 0x40c958
xor eax, eax
mov ecx, dword [ebp - 0x334]
movzx eax, al
mov edx, edi
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], esi
call fcn.0040c6e0
test eax, eax
jne 0x40ce70
xor eax, eax
jmp 0x40c95d
test byte [ebp + 0xc], 1
je 0x40c833
nop
jmp 0x40c958
cmp bx, 0x5e
jne 0x40c85b
nop
jmp 0x40cddb
mov edi, edx
xor eax, eax
cmp edi, dword [ebp - 0x334]
je 0x40c95d
test byte [ebp + 0xc], 8
mov al, 1
je 0x40c95d
xor eax, eax
cmp word [edi], 0x2f
setne al
jmp 0x40c95d
mov eax, 0x5b
mov edx, ebx
mov esi, 0x3a
jmp 0x40c8eb
mov edx, dword [ebp + 0xc]
and edx, 0xfffffffb
mov dword [ebp - 0x338], edx
jmp 0x40ccf5
mov ebx, esi
jmp 0x40cf2e
cmp byte [ebp - 0x33d], 0
je 0x40cf41
cmp word [eax], 0
je 0x40c958
add edx, 4
movzx ebx, word [edx]
movzx ebx, bx
test ebx, ebx
je 0x40c958
cmp ebx, 0x5c
lea eax, [edx + 2]
je 0x40cf15
cmp ebx, 0x5b
je 0x40cf52
cmp ebx, 0x5d
je 0x40cf9d
mov edx, eax
lea esi, [esi]
jmp 0x40cf2b
movzx ecx, word [eax]
cmp cx, 0x3a
je 0x40d013
cmp cx, 0x3d
je 0x40d060
cmp cx, 0x2e
mov edx, eax
jne 0x40cf2b
add eax, 2
movzx edx, word [eax + 2]
test dx, dx
je 0x40c958
add eax, 2
cmp dx, 0x2e
jne 0x40cf74
movzx edx, word [eax + 2]
cmp dx, 0x5d
jne 0x40cf78
movzx ebx, word [eax + 4]
add eax, 6
jmp 0x40cf46
cmp byte [ebp - 0x34f], 0
mov dword [ebp - 0x32c], eax
je 0x40c7dd
jmp 0x40c958
test ecx, ecx
je 0x40cf00
cmp dword [ebp - 0x334], edi
mov eax, 1
jbe 0x40c95d
cmp word [edi], 0x2f
je 0x40d101
mov eax, dword [ebp - 0x334]
jmp 0x40cfea
cmp word [edi], 0x2f
je 0x40d101
add edi, 2
cmp eax, edi
ja 0x40cfe0
jmp 0x40c958
test byte [ebp + 0xc], 2
jne 0x40ccfe
movzx esi, word [ebx]
jmp 0x40ccfe
mov esi, dword [ebp - 0x354]
jmp 0x40c7bc
movzx ebx, word [eax + 2]
lea ecx, [eax + 2]
add edx, 0x202
movzx esi, bx
jmp 0x40d042
sub esi, 0x61
cmp esi, 0x18
ja 0x40cf4b
add ecx, 2
cmp ecx, edx
movzx ebx, word [ecx]
je 0x40c958
movzx esi, bx
cmp bx, 0x3a
jne 0x40d025
cmp word [ecx + 2], 0x5d
jne 0x40d025
movzx ebx, word [ecx + 4]
lea eax, [ecx + 6]
jmp 0x40cf46
cmp word [eax + 2], 0
je 0x40c958
cmp word [eax + 4], 0x3d
lea edx, [eax + 4]
jne 0x40c958
cmp word [edx + 2], 0x5d
jne 0x40c958
movzx ebx, word [eax + 8]
add eax, 0xa
jmp 0x40cf46
mov byte [ecx], 0
lea eax, [ebp - 0x119]
mov dword [esp], eax
call sub.cygwin1.dll_wctype
test eax, eax
je 0x40c958
mov dword [esp + 4], eax
movzx eax, word [edi]
lea edx, [esi + 4]
mov dword [ebp - 0x358], edx
mov dword [esp], eax
call sub.cygwin1.dll_iswctype
mov edx, dword [ebp - 0x358]
test eax, eax
jne 0x40cf2b
movzx ecx, word [esi + 4]
lea ebx, [esi + 6]
jmp 0x40c906
cmp esi, 0x2a
je 0x40c9d1
jmp 0x40ca25
movzx eax, word [ebp - 0x34e]
cmp dword [ebp - 0x338], eax
jb 0x40cb77
jmp 0x40cf2b
mov ecx, dword [ebp + 0xc]
xor eax, eax
lea edx, [edi + 2]
test cl, 4
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x334]
setne al
mov dword [esp], eax
mov eax, ebx
call fcn.0040c6e0
test eax, eax
setne al
movzx eax, al
jmp 0x40c95d
mov edx, dword [ebp - 0x32c]
cmp word [edx], 0x28
jne 0x40c9a8
movzx eax, bl
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x334]
mov dword [esp + 8], ecx
mov ecx, edi
mov dword [esp], eax
mov eax, 0x2a
call fcn.0040c120
cmp eax, 0xffffffff
jne 0x40c95d
jmp 0x40c9a8
mov ecx, dword [ebp - 0x32c]
cmp word [ecx], 0x28
jne 0x40c92f
mov edx, dword [ebp - 0x334]
mov ecx, edi
mov eax, dword [ebp + 0xc]
mov dword [esp], edx
mov edx, dword [ebp - 0x32c]
mov dword [esp + 8], eax
movzx eax, bl
mov dword [esp + 4], eax
mov eax, 0x3f
call fcn.0040c120
cmp eax, 0xffffffff
je 0x40c92f
jmp 0x40c95d