Function at 0x40d900
Capabilities:
Parse credit card information
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xd4]
cmp eax, 2
je 0x40d9de
ja 0x40d9a1
test eax, eax
je 0x40d9da
lea eax, [esp + 0x54]
mov dword [esp + 0x4c], 0
xor ebx, ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x28], eax
lea esi, [esi]
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.cygwin1.dll_getline
mov edx, eax
test eax, eax
jle 0x40dca8
mov eax, dword [esp + 0x54]
call fcn.0040d090
test eax, eax
jle 0x40d950
mov edi, dword [esp + 0x54]
test ebx, ebx
jne 0x40dc8c
cmp byte [edi + eax - 1], 0x5d
jne 0x40dc8c
mov ebx, 1
jmp 0x40d950
cmp eax, 3
jne 0x40d9be
mov edx, 1
mov eax, dword [esp + 0x20]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040d0e0
mov dword [esp], str.Unsupported_listing_type__trying_Unix_listing_parser._n
call sub.cygintl_8.dll_libintl_gettext
mov dword [esp], 1
mov dword [esp + 4], eax
call fcn.0041d940
xor edx, edx
jmp 0x40d9ab
mov esi, dword [esp + 0x20]
mov dword [esp], esi
call sub.cygwin1.dll_fgetc
mov dword [esp], esi
mov ebx, eax
sub ebx, 0x30
call sub.cygwin1.dll_rewind
cmp ebx, 9
ja 0x40d9a6
lea eax, [esp + 0x54]
mov dword [esp + 0x50], 0
xor ebp, ebp
lea esi, [esp + 0x58]
mov dword [esp + 0x54], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
lea esi, [esi]
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.cygwin1.dll_getline
mov edx, eax
test eax, eax
jle 0x40e318
mov eax, dword [esp + 0x54]
call fcn.0040d090
mov ebx, eax
cmp eax, 0x27
jle 0x40da40
mov edi, dword [esp + 0x54]
mov dword [esp + 4], 0x45b291
mov dword [esp], edi
lea eax, [edi + 0x27]
mov dword [esp + 0x1c], eax
call sub.cygwin1.dll_strtok
test eax, eax
je 0x40da40
mov dword [esp], eax
call sub.cygwin1.dll_atoi
mov dword [esp + 4], 0x45b291
test eax, eax
lea edx, [eax - 1]
mov dword [esp], ebp
cmovs edx, ebp
mov dword [esp + 0x30], edx
call sub.cygwin1.dll_strtok
test eax, eax
je 0x40da40
mov dword [esp], eax
call sub.cygwin1.dll_atoi
mov dword [esp + 4], 0x45b28a
mov dword [esp], ebp
mov dword [esp + 0x38], eax
call sub.cygwin1.dll_strtok
test eax, eax
je 0x40da40
mov dword [esp], eax
call sub.cygwin1.dll_atoi
mov dword [esp + 0x34], eax
cmp eax, 0x46
jg 0x40e33f
add eax, 0x64
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
mov edi, esi
mov dword [esp], eax
call fcn.004376c0
mov eax, ebp
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00447e10
mov dword [esp + 4], 0x45b293
mov dword [esp], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x5c], eax
call sub.cygwin1.dll_strtok
test eax, eax
je 0x40da40
mov dword [esp], eax
call sub.cygwin1.dll_atoi
mov dword [esp + 4], 0x45b295
mov dword [esp], ebp
mov ebx, eax
call sub.cygwin1.dll_strtok
mov edi, eax
test eax, eax
je 0x40da40
mov dword [esp], eax
call sub.cygwin1.dll_atoi
movzx edx, byte [edi]
test dl, dl
jne 0x40e36c
cmp ebx, 0xc
cmovae ebx, ebp
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x80], ebp
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], eax
lea eax, [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], 0xffffffff
call sub.cygwin1.dll_mktime
mov dword [esp + 0x68], eax
mov dword [esp + 4], 0x45b28a
mov dword [esp], ebp
call sub.cygwin1.dll_strtok
mov ebx, eax
test eax, eax
je 0x40da40
movzx eax, byte [eax]
test al, al
je 0x40dbdf
cmp al, 0x3c
jne 0x40e38a
mov dword [esp + 0x58], 1
mov eax, 0x1ed
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x70], eax
test edx, edx
je 0x40e3ce
mov dword [esp], 0x28
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x78], edi
call fcn.00447900
mov edx, dword [esi]
mov dword [edi + 0x24], eax
mov dword [eax], edx
mov edx, dword [esi + 4]
mov dword [eax + 0x24], 0
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x3c], eax
mov dword [eax + 8], edx
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [esi + 0x14]
mov dword [eax + 0x14], edx
mov edx, dword [esi + 0x18]
mov dword [eax + 0x18], edx
mov edx, dword [esi + 0x1c]
mov dword [eax + 0x1c], edx
mov edx, dword [esi + 0x20]
mov dword [eax + 0x20], edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x24], 0
jmp 0x40da40
mov dword [esp + 8], 9
mov dword [esp + 4], 0x45b297
mov dword [esp], edi
call sub.cygwin1.dll_strncmp
test eax, eax
jne 0x40dcd5
mov dword [esp + 0x2c], 0
xor ebx, ebx
mov dword [esp], ebx
call fcn.004376c0
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x2c]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x84], 0
xor ebp, ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
lea esi, [esi]
mov dword [esp], edi
mov dword [esp + 4], 0x45b28a
call sub.cygwin1.dll_strtok
test eax, eax
mov edi, eax
cmove edi, dword [esp + 0x54]
mov dword [esp], edi
call sub.cygwin1.dll_strlen
add eax, edi
sub eax, 1
cmp edi, eax
jae 0x40dd3e
movsx edx, byte [eax]
sub edx, 0x30
cmp edx, 9
jbe 0x40dd23
cmp byte [eax], 0x3b
je 0x40e2f8
movzx edx, byte [edi]
mov eax, edi
test dl, dl
jne 0x40dd5f
jmp 0x40dd64
movzx edx, byte [eax + 1]
add eax, 1
test dl, dl
je 0x40de07
cmp dl, 0x5e
jne 0x40dd50
test dl, dl
je 0x40de07
movzx edx, byte [eax]
mov ebx, eax
test dl, dl
je 0x40de04
mov dword [esp + 0x30], edi
jmp 0x40dd92
mov byte [ebx], dl
movzx edx, byte [eax + 1]
add ebx, 1
lea ecx, [eax + 1]
test dl, dl
je 0x40de00
mov eax, ecx
cmp dl, 0x5e
jne 0x40dd80
movzx esi, byte [eax + 1]
mov ecx, esi
mov byte [esp + 0x24], cl
test byte [esi + 0x450c40], 0x40
je 0x40dd80
movzx esi, byte [eax + 2]
mov ecx, esi
movzx edi, cl
test byte [edi + 0x450c40], 0x40
je 0x40dd80
movzx ecx, byte [esp + 0x24]
cmp cl, 0x39
ja 0x40e2e0
sub ecx, 0x30
movsx ecx, cl
mov edx, esi
add eax, 2
shl ecx, 4
cmp dl, 0x39
ja 0x40e2d0
lea edx, [esi + ecx - 0x30]
add ebx, 1
lea ecx, [eax + 1]
mov byte [ebx - 1], dl
movzx edx, byte [eax + 1]
test dl, dl
jne 0x40dd90
lea esi, [esi]
lea esi, [esi]
mov edi, dword [esp + 0x30]
mov byte [ebx], 0
mov dword [esp], edi
call sub.cygwin1.dll_strlen
mov ebx, eax
cmp eax, 3
jbe 0x40e128
lea esi, [edi + eax - 4]
mov dword [esp + 8], 4
mov dword [esp + 4], str..DIR
mov dword [esp], esi
call fcn.00433040
test eax, eax
jne 0x40e190
mov byte [esi], 0
mov edx, 1
mov eax, 0x1ed
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x80], edx
mov dword [esp], eax
call fcn.004376c0
mov dword [esp], edi
call fcn.00447e10
mov dword [esp + 4], 0x45b28a
mov dword [esp], ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], eax
mov byte [esp + 0x58], 0
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
call sub.cygwin1.dll_strtok
mov ebx, eax
test eax, eax
je 0x40e1d0
lea edi, [esp + 0x58]
jmp 0x40df0e
mov dword [esp + 4], 0x2d
mov dword [esp], ebx
call sub.cygwin1.dll_strchr
test eax, eax
je 0x40df90
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x45b2ad
mov dword [esp + 4], 0x20
mov dword [esp], edi
call sub.cygwin1.dll_snprintf
mov dword [esp + 4], 0x45b28a
mov dword [esp], ebp
call sub.cygwin1.dll_strtok
mov ebx, eax
test eax, eax
je 0x40dfd0
mov dword [esp], ebx
call sub.cygwin1.dll_strlen
mov esi, eax
cmp eax, 0xb
jbe 0x40dec0
mov dword [esp + 4], 0x5b
mov dword [esp], ebx
call sub.cygwin1.dll_strchr
test eax, eax
jne 0x40def4
mov dword [esp + 4], 0x28
mov dword [esp], ebx
call sub.cygwin1.dll_strchr
test eax, eax
je 0x40def4
test esi, esi
je 0x40e30a
add esi, ebx
xor edx, edx
xor ecx, ecx
jmp 0x40df72
cmp al, 0x2c
je 0x40e170
cmp al, 0x44
jne 0x40df67
or edx, 2
add ebx, 1
cmp ebx, esi
je 0x40e150
movzx eax, byte [ebx]
cmp al, 0x45
je 0x40e160
jle 0x40df58
cmp al, 0x52
je 0x40e138
cmp al, 0x57
je 0x40df64
jmp 0x40df67
mov dword [esp + 4], 0x3a
mov dword [esp], ebx
call sub.cygwin1.dll_strchr
test eax, eax
je 0x40df1d
mov dword [esp], edi
call sub.cygwin1.dll_strlen
mov dword [esp + 4], ebx
mov edx, eax
mov eax, 0x1f
mov dword [esp], edi
sub eax, edx
mov dword [esp + 8], eax
call sub.cygwin1.dll_strncat
jmp 0x40def4
mov dword [esp], ebp
call sub.cygwin1.dll_time
mov dword [esp + 0x50], eax
lea eax, [esp + 0x50]
mov dword [esp], eax
call sub.cygwin1.dll_localtime
mov dword [esp + 4], str._d__b__Y__H:_M:_S
mov dword [esp + 8], eax
mov esi, eax
mov dword [esp], edi
call sub.cygwin1.dll_strptime
mov dword [esp], esi
call sub.cygwin1.dll_mktime
mov dword [esp], str.WGET_TIMEZONE_DIFFERENTIAL
mov dword [esp + 0x50], eax
call sub.cygwin1.dll_getenv
test eax, eax
je 0x40e230
mov dword [esp], eax
call sub.cygwin1.dll_atoi
add eax, dword [esp + 0x50]
mov dword [esp + 0x94], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40e250
mov dword [esp], 0x28
mov edi, dword [esp + 0x34]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], edi
call fcn.00447900
mov dword [edi + 0x24], eax
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esi], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x98]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x9c]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xa0]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0xa4]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], ebp
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.cygwin1.dll_getline
mov edx, eax
test eax, eax
jle 0x40dcb2
mov eax, dword [esp + 0x54]
call fcn.0040d090
test eax, eax
jle 0x40dcb2
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x54]
mov dword [esp + 0x34], esi
jmp 0x40dd00
xor edx, edx
mov eax, 0x1a4
jmp 0x40de4b
add ebx, 1
or edx, 4
cmp ebx, esi
jne 0x40df72
lea esi, [esi]
lea esi, [esi]
mov dword [esp + 0x98], edx
jmp 0x40def4
or edx, 1
jmp 0x40df67
test ecx, ecx
je 0x40e240
lea eax, [edx*8]
cmp ecx, 4
cmovl edx, eax
add ecx, 1
jmp 0x40df67
cmp ebx, 5
jbe 0x40e128
lea ebx, [edi + ebx - 6]
mov dword [esp + 8], 6
mov dword [esp + 4], str..DIR_1
mov dword [esp], ebx
call fcn.00433040
test eax, eax
jne 0x40e128
mov byte [ebx], 0
mov edx, 1
mov eax, 0x1ed
jmp 0x40de4b
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.cygwin1.dll_getline
mov edx, eax
test eax, eax
jle 0x40e226
mov eax, dword [esp + 0x54]
call fcn.0040d090
test eax, eax
jle 0x40e226
mov edi, dword [esp + 0x54]
cmp byte [edi], 0x20
jne 0x40dd00
mov dword [esp + 4], 0x45b28a
mov dword [esp], edi
call sub.cygwin1.dll_strtok
mov ebx, eax
test eax, eax
jne 0x40deb4
mov ebx, dword [esp + 0x1c]
jmp 0x40dcb2
xor eax, eax
jmp 0x40e026
xor edx, edx
jmp 0x40e185
mov dword [esp], 0x28
call fcn.00447900
mov dword [esp + 0xa4], ebp
mov ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa0], ebp
mov esi, ecx
mov dword [ecx], eax
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x20], ebp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x88]
mov dword [ecx + 0x24], ebp
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x90]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x98]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0x1c], eax
jmp 0x40e0ce
sub esi, 0x41
and esi, 0xf
lea edx, [esi + ecx + 0xa]
jmp 0x40dd80
movzx ecx, byte [esp + 0x24]
sub ecx, 0x41
and ecx, 7
add ecx, 0xa
jmp 0x40ddcd
cmp byte [eax - 1], 0x5e
je 0x40dd3e
mov byte [eax], 0
jmp 0x40dd3e
xor edx, edx
mov dword [esp + 0x98], edx
jmp 0x40def4
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x2c]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x34]
cmp eax, 0x76b
jle 0x40dafd
cmp ebx, 0x29
jle 0x40da40
sub eax, 0x76c
mov dword [esp + 0x34], eax
lea eax, [edi + 0x29]
mov dword [esp + 0x1c], eax
jmp 0x40dafd
cmp byte [edi + 1], 0
je 0x40e376
movzx edx, byte [edi + 2]
cmp ebx, 0xc
cmovae ebx, ebp
cmp dl, 0x50
lea ecx, [ebx + 0xc]
cmove ebx, ecx
jmp 0x40db7d
call sub.cygwin1.dll___errno
mov dword [eax], 0
mov dword [esp], ebx
mov dword [esp + 8], 0xa
mov dword [esp + 4], ebp
call fcn.004471e0
mov edi, edx
mov ebx, eax
mov edx, eax
mov eax, edi
not edx
xor eax, 0x7fffffff
or eax, edx
je 0x40e425
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov eax, 0x1a4
jmp 0x40dc15
mov dword [esp], 0x28
call fcn.00447900
mov ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
mov dword [ecx + 0x24], 0
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0x20], 0
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x3c], ecx
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x1c]
mov dword [ecx + 0x1c], eax
jmp 0x40dc7b
call sub.cygwin1.dll___errno
cmp dword [eax], 0x22
jne 0x40e3bc
jmp 0x40e3c4