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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x16c
mov dword [ebp - 0x134], ecx
movzx ecx, byte [ebp + 8]
mov byte [ebp - 0x135], cl
movzx ebx, byte [eax]
test bl, bl
je 0x40df35
lea edi, [eax + 1]
mov esi, edx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
and eax, 0x10
and edx, 5
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 0xc]
and ecx, 0x20
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x144], ecx
and eax, 2
and edx, 1
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x150], edx
mov edx, dword [ebp - 0x12c]
test edx, edx
je 0x40d78f
movzx ebx, bl
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
mov ebx, eax
lea eax, [ebx - 0x21]
cmp al, 0x3b
jbe 0x40d823
cmp esi, dword [ebp - 0x134]
je 0x40d813
movzx ebx, bl
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x40db60
movzx eax, byte [esi]
mov dword [esp], eax
call sub.cygwin1.dll_tolower
cmp eax, ebx
jne 0x40d813
xor eax, eax
movzx ebx, byte [edi]
add esi, 1
test bl, bl
je 0x40df37
add edi, 1
mov byte [ebp - 0x135], al
jmp 0x40d778
test ecx, ecx
je 0x40df6f
cmp dword [ebp - 0x134], esi
mov eax, 1
jbe 0x40d818
cmp byte [esi], 0x2f
je 0x40e0d1
mov eax, dword [ebp - 0x134]
jmp 0x40d80c
cmp byte [esi], 0x2f
je 0x40e0d1
add esi, 1
cmp eax, esi
ja 0x40d803
mov eax, 1
add esp, 0x16c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, al
jmp dword [eax*4 + 0x417d14]
mov ecx, dword [ebp - 0x148]
test ecx, ecx
jne 0x40d852
movzx ebx, byte [edi]
add edi, 1
test bl, bl
je 0x40d813
mov edx, dword [ebp - 0x12c]
test edx, edx
jne 0x40de63
cmp esi, dword [ebp - 0x134]
je 0x40d813
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x40db68
movzx eax, byte [esi]
mov dword [esp], eax
call sub.cygwin1.dll_tolower
movzx ebx, bl
cmp eax, ebx
je 0x40d7c2
jmp 0x40d813
mov eax, dword [0x41a7f0]
test eax, eax
je 0x40de06
cmp esi, dword [ebp - 0x134]
je 0x40d813
movzx eax, byte [esi]
cmp al, 0x2e
je 0x40de24
cmp al, 0x2f
je 0x40df10
movzx ebx, byte [edi]
cmp bl, 0x21
je 0x40de3d
mov ecx, dword [0x41a7f0]
mov edx, edi
mov byte [ebp - 0x151], 0
test ecx, ecx
js 0x40df23
mov ecx, dword [ebp - 0x12c]
mov byte [ebp - 0x135], al
test ecx, ecx
je 0x40d8fc
movzx eax, al
mov dword [esp], eax
mov dword [ebp - 0x160], edx
call sub.cygwin1.dll_tolower
mov edx, dword [ebp - 0x160]
mov byte [ebp - 0x135], al
mov eax, ebx
lea ebx, [edx + 1]
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x158], edi
test edx, edx
movzx edx, byte [ebp - 0x135]
sete byte [ebp - 0x140]
mov dword [ebp - 0x15c], edx
cmp al, 0x5c
jne 0x40db75
cmp byte [ebp - 0x140], 0
je 0x40db75
movzx eax, byte [ebx]
test al, al
je 0x40d813
mov edi, eax
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x40d95f
and edi, 0xff
mov dword [esp], edi
call sub.cygwin1.dll_tolower
mov edi, eax
movzx ecx, byte [ebx + 1]
lea edx, [ebx + 1]
cmp cl, 0x2d
je 0x40dba0
lea ebx, [edx + 1]
mov eax, edi
cmp al, byte [ebp - 0x135]
je 0x40df80
cmp cl, 0x2d
mov eax, ecx
je 0x40dc17
cmp al, 0x5d
jne 0x40d923
cmp byte [ebp - 0x151], 0
je 0x40d813
mov edi, ebx
xor eax, eax
jmp 0x40d7c4
mov eax, dword [ebp - 0x144]
test eax, eax
jne 0x40e140
cmp esi, dword [ebp - 0x134]
je 0x40d813
movzx edx, byte [esi]
cmp dl, 0x2f
je 0x40de50
xor eax, eax
cmp dl, 0x2e
jne 0x40d7c4
cmp byte [ebp - 0x135], 0
je 0x40d7c4
jmp 0x40d813
cmp dword [ebp - 0x14c], 5
jne case.0x40d826.1
cmp esi, dword [ebp - 0x134]
je 0x40d813
cmp byte [esi], 0x2f
jne 0x40d813
mov eax, 1
jmp 0x40d7c4
mov edx, dword [ebp + 0xc]
and edx, 0x20
mov dword [ebp - 0x13c], edx
jne 0x40e100
cmp dword [ebp - 0x134], esi
je 0x40da37
cmp byte [esi], 0x2e
je 0x40de75
movzx edx, byte [edi]
lea ebx, [edi + 1]
cmp dl, 0x3f
jne 0x40e0a3
mov edi, dword [ebp + 0xc]
and edi, 1
jmp 0x40da64
cmp dl, 0x3f
je 0x40db30
movzx edx, byte [ebx]
add ebx, 1
cmp dl, 0x2a
jne 0x40da98
cmp byte [ebx], 0x28
jne 0x40da50
mov ecx, dword [ebp - 0x13c]
test ecx, ecx
je 0x40da50
mov eax, ebx
mov byte [ebp - 0x160], dl
call fcn.0040c050
movzx edx, byte [ebp - 0x160]
cmp eax, ebx
je 0x40da50
mov ebx, eax
movzx edx, byte [ebx]
add ebx, 1
cmp dl, 0x2a
je 0x40da64
cmp dl, 0x3f
je 0x40da64
test dl, dl
jne 0x40dcd0
xor eax, eax
test byte [ebp + 0xc], 1
je 0x40d818
test byte [ebp + 0xc], 8
jne 0x40d818
mov eax, dword [ebp - 0x134]
mov dword [esp + 4], 0x2f
mov dword [esp], esi
sub eax, esi
mov dword [esp + 8], eax
call sub.cygwin1.dll_memchr
test eax, eax
setne al
movzx eax, al
jmp 0x40d818
mov edx, dword [ebp - 0x144]
test edx, edx
je case.0x40d826.1
cmp byte [edi], 0x28
jne case.0x40d826.1
mov edx, dword [ebp + 0xc]
movzx eax, bl
mov ecx, dword [ebp - 0x134]
mov dword [esp + 8], edx
movzx edx, byte [ebp - 0x135]
mov dword [esp], ecx
mov ecx, esi
mov dword [esp + 4], edx
mov edx, edi
call fcn.0040d1c0
cmp eax, 0xffffffff
je case.0x40d826.1
jmp 0x40d818
cmp esi, dword [ebp - 0x134]
je 0x40d813
cmp byte [esi], 0x2f
nop
je 0x40db50
add esi, 1
jmp 0x40da59
test edi, edi
je 0x40db42
jmp 0x40d813
movzx eax, byte [esi]
jmp 0x40d7be
movzx eax, byte [esi]
nop
lea esi, [esi]
jmp 0x40d873
cmp al, 0x5b
je 0x40dc30
test al, al
nop
je 0x40e028
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
jne 0x40dc00
movzx ecx, byte [ebx]
mov edi, eax
mov edx, ebx
cmp cl, 0x2d
jne 0x40d96f
movzx eax, byte [edx + 1]
lea ebx, [edx + 1]
test al, al
je 0x40d972
cmp al, 0x5d
mov byte [ebp - 0x13c], al
je 0x40d972
movzx eax, byte [ebp - 0x13c]
lea edx, [ebx + 1]
cmp al, 0x5c
jne 0x40dbd4
cmp byte [ebp - 0x140], 0
jne 0x40dbf3
test al, al
je 0x40d813
cmp al, byte [ebp - 0x135]
jae 0x40e0b1
movzx eax, byte [edx]
lea ebx, [edx + 1]
jmp 0x40d98b
movzx eax, byte [edx]
lea edx, [ebx + 2]
jmp 0x40dbd4
movzx eax, al
mov dword [esp], eax
call sub.cygwin1.dll_tolower
movzx ecx, byte [ebx]
mov edx, ebx
mov edi, eax
jmp 0x40d966
movzx ecx, byte [ebx]
cmp cl, 0x5d
mov byte [ebp - 0x13c], cl
jne 0x40dbbd
jmp 0x40d923
cmp byte [ebx], 0x3a
jne 0x40db86
mov edi, ebx
xor edx, edx
lea esi, [esi]
jmp 0x40dc64
lea ecx, [eax - 0x61]
cmp cl, 0x18
ja 0x40df5e
mov byte [ebp + edx - 0x119], al
add edx, 1
cmp edx, 0x100
je 0x40d813
add edi, 1
movzx eax, byte [edi]
cmp al, 0x3a
jne 0x40dc42
cmp byte [edi + 1], 0x5d
jne 0x40dc42
lea eax, [ebp - 0x119]
mov byte [ebp + edx - 0x119], 0
mov dword [esp], eax
call sub.cygwin1.dll_wctype
test eax, eax
mov ebx, eax
je 0x40d813
movzx eax, byte [esi]
lea edx, [edi + 2]
mov dword [ebp - 0x160], edx
mov dword [esp], eax
call sub.cygwin1.dll_btowc
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.cygwin1.dll_iswctype
mov edx, dword [ebp - 0x160]
test eax, eax
jne 0x40e0c2
movzx eax, byte [edi + 2]
lea ebx, [edi + 3]
jmp 0x40d98b
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x134]
mov dword [esp], esi
mov byte [ebp - 0x160], dl
and ecx, 1
mov eax, ecx
sub edi, esi
neg eax
and eax, 0x2f
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [ebp - 0x164], ecx
call sub.cygwin1.dll_memchr
movzx edx, byte [ebp - 0x160]
mov ecx, dword [ebp - 0x164]
test eax, eax
mov edi, eax
cmove edi, dword [ebp - 0x134]
cmp dl, 0x5b
je 0x40dea8
mov eax, dword [ebp - 0x13c]
test eax, eax
jne 0x40de8c
cmp dl, 0x2f
je 0x40d7dd
mov eax, dword [ebp + 0xc]
test ecx, ecx
mov dword [ebp - 0x13c], eax
je 0x40df6f
cmp dl, 0x5c
je 0x40e016
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
je 0x40dd6a
movzx edx, dl
mov dword [esp], edx
call sub.cygwin1.dll_tolower
mov edx, eax
sub ebx, 1
cmp edi, esi
mov dword [ebp - 0x140], ebx
mov eax, 1
jbe 0x40d818
movzx ebx, byte [ebp - 0x135]
movzx edx, dl
mov dword [ebp - 0x130], edx
mov edx, ebx
mov ebx, edi
mov edi, dword [ebp - 0x12c]
jmp 0x40ddcc
movzx eax, byte [esi]
mov dword [ebp - 0x160], edx
mov dword [esp], eax
call sub.cygwin1.dll_tolower
mov edx, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x130]
je 0x40dddb
add esi, 1
cmp ebx, esi
jbe 0x40d813
xor edx, edx
test edi, edi
jne 0x40dda0
movzx eax, byte [esi]
cmp eax, dword [ebp - 0x130]
jne 0x40ddbf
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x134]
mov dword [esp], edx
mov edx, esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x140]
call fcn.0040d710
test eax, eax
jne 0x40ddbf
xor eax, eax
jmp 0x40d818
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 0x40d88d
cmp byte [ebp - 0x135], 0
jne 0x40d813
movzx ebx, byte [edi]
cmp bl, 0x21
jne 0x40d8b8
movzx ebx, byte [edi + 1]
lea edx, [edi + 1]
mov byte [ebp - 0x151], 1
jmp 0x40d8cf
mov ebx, dword [ebp - 0x150]
test ebx, ebx
je 0x40d7c2
jmp 0x40d813
movzx ebx, bl
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
mov ebx, eax
jmp 0x40d852
cmp byte [ebp - 0x135], 0
mov eax, 1
je 0x40da37
jmp 0x40d818
cmp dl, 0x2b
je 0x40de9f
cmp dl, 0x40
je 0x40de9f
cmp dl, 0x21
jne 0x40dd30
cmp byte [ebx], 0x28
jne 0x40dd30
mov eax, dword [ebp + 0xc]
and eax, 0xfffffffb
test ecx, ecx
cmovne eax, dword [ebp + 0xc]
sub ebx, 1
cmp edi, esi
mov dword [ebp - 0x12c], eax
mov eax, 1
jbe 0x40d818
movzx eax, byte [ebp - 0x135]
jmp 0x40dee0
add esi, 1
cmp edi, esi
jbe 0x40d813
xor eax, eax
mov edx, dword [ebp - 0x12c]
movzx eax, al
mov ecx, dword [ebp - 0x134]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mov edx, esi
call fcn.0040d710
test eax, eax
jne 0x40ded3
xor eax, eax
jmp 0x40d818
mov ebx, dword [ebp - 0x150]
test ebx, ebx
je 0x40d8ac
jmp 0x40d813
cmp bl, 0x5e
jne 0x40d8cf
lea esi, [esi]
jmp 0x40de3d
mov esi, edx
xor eax, eax
cmp esi, dword [ebp - 0x134]
je 0x40d818
test byte [ebp + 0xc], 8
mov al, 1
je 0x40d818
xor eax, eax
cmp byte [esi], 0x2f
setne al
jmp 0x40d818
mov edi, 0x5b
mov edx, ebx
mov ecx, 0x3a
jmp 0x40d96f
mov ecx, dword [ebp + 0xc]
and ecx, 0xfffffffb
mov dword [ebp - 0x13c], ecx
jmp 0x40dd4a
movzx ebx, byte [ebp - 0x140]
jmp 0x40dfa3
test bl, bl
je 0x40dfb5
cmp byte [edi], 0
je 0x40d813
add edx, 2
movzx ecx, byte [edx]
test cl, cl
mov eax, ecx
je 0x40d813
cmp cl, 0x5c
lea edi, [edx + 1]
je 0x40df90
cmp cl, 0x5b
je 0x40dfc2
cmp al, 0x5d
je 0x40e004
mov edx, edi
jmp 0x40dfa0
movzx eax, byte [edi]
cmp al, 0x3a
je 0x40e038
cmp al, 0x3d
je 0x40e076
cmp al, 0x2e
mov edx, edi
jne 0x40dfa0
add edi, 1
lea esi, [esi]
movzx eax, byte [edi + 1]
test al, al
je 0x40d813
add edi, 1
cmp al, 0x2e
jne 0x40dfe0
movzx eax, byte [edi + 1]
cmp al, 0x5d
jne 0x40dfe4
movzx eax, byte [edi + 2]
add edi, 3
jmp 0x40dfba
cmp byte [ebp - 0x151], 0
je 0x40d7c2
jmp 0x40d813
test byte [ebp + 0xc], 2
jne 0x40dd53
movzx edx, byte [ebx]
jmp 0x40dd53
mov edi, dword [ebp - 0x158]
mov ebx, 0x5b
jmp 0x40d7a5
lea ecx, [edi + 1]
movzx eax, byte [edi + 1]
add edx, 0x101
jmp 0x40e060
sub eax, 0x61
cmp al, 0x18
ja 0x40dfbe
add ecx, 1
cmp ecx, edx
movzx eax, byte [ecx]
je 0x40d813
cmp al, 0x3a
jne 0x40e047
cmp byte [ecx + 1], 0x5d
jne 0x40e047
movzx eax, byte [ecx + 2]
lea edi, [ecx + 3]
jmp 0x40dfba
cmp byte [edi + 1], 0
je 0x40d813
cmp byte [edi + 2], 0x3d
lea eax, [edi + 2]
jne 0x40d813
cmp byte [eax + 1], 0x5d
jne 0x40d813
movzx eax, byte [edi + 4]
add edi, 5
jmp 0x40dfba
cmp dl, 0x2a
je 0x40da46
jmp 0x40da9d
mov eax, edi
movsx edi, al
cmp edi, dword [ebp - 0x15c]
jg 0x40dbe8
movzx ecx, byte [edx]
movzx ebx, byte [ebp - 0x140]
jmp 0x40dfa3
mov ecx, dword [ebp + 0xc]
xor eax, eax
lea edx, [esi + 1]
test cl, 4
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x134]
setne al
mov dword [esp], eax
mov eax, ebx
call fcn.0040d710
test eax, eax
setne al
movzx eax, al
jmp 0x40d818
cmp byte [edi], 0x28
jne 0x40da26
movzx eax, byte [ebp - 0x135]
mov edx, edi
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x134]
mov dword [esp + 8], ecx
mov ecx, esi
mov dword [esp], eax
mov eax, 0x2a
call fcn.0040d1c0
cmp eax, 0xffffffff
jne 0x40d818
jmp 0x40da26
cmp byte [edi], 0x28
jne 0x40d9b3
movzx eax, byte [ebp - 0x135]
mov edx, edi
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x134]
mov dword [esp + 8], ecx
mov ecx, esi
mov dword [esp], eax
mov eax, 0x3f
call fcn.0040d1c0
cmp eax, 0xffffffff
je 0x40d9b3
jmp 0x40d818