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

Disassembly:
push ebp
push edi
mov edi, edx
push esi
push ebx
mov ebx, eax
add eax, 1
sub esp, 0x15c
movzx esi, byte [ebx]
mov dword [esp + 0x20], eax
movzx ebp, byte [esp + 0x170]
mov eax, esi
mov dword [esp + 0x1c], ecx
test al, al
je 0x449c83
mov eax, dword [esp + 0x174]
and eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x174]
and eax, 1
mov ecx, eax
mov dword [esp + 0x24], eax
neg ecx
and ecx, 0x2f
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x174]
and ecx, 0xfffffffb
test eax, eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x30], ecx
cmovne ecx, dword [esp + 0x174]
and eax, 0x10
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], eax
mov eax, ebx
mov ebx, esi
mov esi, eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x44a090
lea eax, [ebx - 0x21]
cmp al, 0x3b
ja case.0x449c2b.1
movzx eax, al
jmp dword [eax*4 + 0x465c00]
test byte [esp + 0x174], 0x20
jne 0x44a2aa
lea esi, [esi]
lea esi, [esi]
cmp dword [esp + 0x1c], edi
je 0x449ca0
movzx ebx, bl
mov eax, dword [esp + 0x14]
movzx esi, byte [edi]
test eax, eax
jne 0x44a0e8
cmp esi, ebx
jne 0x449ca0
xor ebp, ebp
mov esi, dword [esp + 0x20]
add edi, 1
movzx ebx, byte [esi]
lea eax, [esi + 1]
mov dword [esp + 0x20], eax
test bl, bl
jne 0x449c15
cmp dword [esp + 0x1c], edi
je 0x44a627
test byte [esp + 0x174], 8
jne 0x44a5b0
lea esi, [esi]
nop
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x24]
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x174]
and eax, 0x20
mov dword [esp + 0x18], eax
jne 0x44a50a
mov eax, dword [esp + 0x178]
test eax, eax
jne 0x44a6d8
cmp dword [esp + 0x1c], edi
je 0x449ceb
cmp byte [edi], 0x2e
jne 0x449ceb
mov eax, ebp
test al, al
jne 0x449ca0
movzx ebx, byte [esi + 1]
lea edx, [esi + 2]
cmp bl, 0x3f
je 0x449cfc
cmp bl, 0x2a
jne 0x449d3a
mov eax, dword [esp + 0x18]
test eax, eax
setne al
mov esi, eax
lea esi, [esi]
nop
cmp byte [edx], 0x28
jne 0x449d1f
mov eax, esi
test al, al
jne 0x44a0b0
cmp bl, 0x3f
je 0x449e70
mov eax, edx
movzx ebx, byte [eax]
lea edx, [eax + 1]
cmp bl, 0x3f
je 0x449d10
cmp bl, 0x2a
je 0x449d10
test bl, bl
je 0x44a6f8
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov dword [esp], edi
mov dword [esp + 0x10], edx
sub eax, edi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x4c], 0
call sub.cygwin1.dll_memchr
mov edx, dword [esp + 0x10]
test eax, eax
mov esi, eax
cmove esi, dword [esp + 0x1c]
cmp bl, 0x5b
je 0x44a672
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x44a650
cmp bl, 0x2f
je 0x44a410
mov eax, dword [esp + 0x24]
test eax, eax
mov eax, dword [esp + 0x30]
cmovne eax, dword [esp + 0x174]
mov dword [esp + 0x34], eax
cmp bl, 0x5c
jne 0x449db9
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x449db9
movzx ebx, byte [edx]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x44a430
lea eax, [edx - 1]
mov dword [esp + 0x20], eax
cmp esi, edi
jbe 0x449ca0
mov ecx, ebp
mov ebp, esi
mov esi, ebx
mov ebx, dword [esp + 0x14]
jmp 0x449df1
cmp edx, esi
je 0x449e1c
add edi, 1
xor ecx, ecx
cmp ebp, edi
je 0x44a290
movzx edx, byte [edi]
test ebx, ebx
je 0x449de0
mov byte [esp + 0x18], cl
mov dword [esp + 0x10], edx
call sub.cygwin1.dll___locale_ctype_ptr
mov edx, dword [esp + 0x10]
mov dword [esp], edx
call sub.cygwin1.dll_tolower
movzx ecx, byte [esp + 0x18]
mov edx, eax
cmp edx, esi
jne 0x449de4
mov eax, dword [esp + 0x17c]
movzx ecx, cl
mov edx, edi
mov dword [esp], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
call fcn.00449b90
test eax, eax
jne 0x449de4
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x44a627
mov edi, dword [esp + 0x50]
movzx ebp, byte [esp + 0x54]
jmp 0x449c75
cmp dword [esp + 0x1c], edi
je 0x449ca0
cmp byte [edi], 0x2f
je 0x44a0d0
add edi, 1
jmp 0x449d28
mov edx, dword [esp + 0x28]
test edx, edx
jne 0x44a100
movzx ebx, byte [esi + 1]
lea eax, [esi + 2]
mov dword [esp + 0x20], eax
test bl, bl
je 0x449ca0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x44a491
cmp dword [esp + 0x1c], edi
je 0x449ca0
movzx esi, bl
movzx eax, byte [edi]
cmp eax, esi
je 0x449c6c
jmp 0x449ca0
test byte [esp + 0x174], 0x20
jne 0x44a560
cmp dword [esp + 0x1c], edi
je 0x449ca0
movzx eax, byte [edi]
cmp al, 0x2f
je 0x44a180
cmp al, 0x2e
mov ecx, ebp
sete al
and cl, al
mov ebp, ecx
je 0x449c6e
jmp 0x449ca0
mov eax, dword [esp + 0x174]
and eax, 5
cmp eax, 5
jne case.0x449c2b.1
cmp dword [esp + 0x1c], edi
je 0x449ca0
cmp byte [edi], 0x2f
jne 0x449ca0
mov ebp, 1
jmp 0x449c6e
mov eax, dword [0x478784]
test eax, eax
je 0x44a198
cmp dword [esp + 0x1c], edi
je 0x449ca0
movzx eax, byte [edi]
cmp al, 0x2e
je 0x44a130
cmp al, 0x2f
jne 0x449f7a
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x449ca0
movzx edx, byte [esi + 1]
cmp dl, 0x21
je 0x44a147
mov ecx, dword [0x478784]
test ecx, ecx
jns 0x449f9a
cmp dl, 0x5e
je 0x44a147
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 0x20]
test eax, eax
jne 0x44a162
mov dword [esp + 0x34], edi
movzx edx, byte [esi]
lea ebx, [esi + 1]
mov edi, dword [esp + 0x28]
jmp 0x449ff5
movzx edx, byte [esp + 0x10]
mov ecx, esi
cmp cl, byte [esp + 0x18]
je 0x44a300
cmp dl, 0x2d
je 0x44a230
mov ebx, ebp
cmp dl, 0x5d
je 0x44a3d8
test edi, edi
jne 0x44a002
cmp dl, 0x5c
je 0x44a248
cmp dl, 0x5b
je 0x44a1c0
test dl, dl
je 0x44a3f8
mov ebp, dword [esp + 0x14]
mov esi, edx
test ebp, ebp
jne 0x44a210
movzx eax, byte [ebx]
lea ebp, [ebx + 1]
mov byte [esp + 0x10], al
cmp al, 0x2d
jne 0x449fd0
movzx ecx, byte [ebx + 1]
test cl, cl
je 0x449fd0
cmp cl, 0x5d
je 0x449fd0
lea ebp, [ebx + 2]
mov eax, ecx
cmp cl, 0x5c
jne 0x44a04e
test edi, edi
je 0x44a280
test al, al
je 0x449ca0
movzx ecx, byte [ebp]
lea ebx, [ebp + 1]
mov byte [esp + 0x10], cl
mov edx, ecx
mov ecx, esi
cmp cl, byte [esp + 0x18]
ja 0x449fec
mov ecx, eax
movzx eax, byte [esp + 0x18]
cmp cl, al
jb 0x449fec
mov ebx, ebp
mov edi, dword [esp + 0x34]
mov eax, edx
lea ebp, [ebp + 1]
jmp 0x44a309
call sub.cygwin1.dll___locale_ctype_ptr
movzx ebx, bl
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
mov ebx, eax
jmp 0x449c21
mov eax, edx
mov dword [esp + 0x10], edx
call fcn.00448080
mov edx, dword [esp + 0x10]
cmp eax, edx
jne 0x449d2a
jmp 0x449d1f
mov eax, dword [esp + 0x24]
test eax, eax
je 0x449e83
jmp 0x449ca0
call sub.cygwin1.dll___locale_ctype_ptr
mov dword [esp], esi
call sub.cygwin1.dll_tolower
mov esi, eax
jmp 0x449c68
cmp dword [esp + 0x1c], edi
je 0x449ca0
mov eax, dword [esp + 0x14]
mov esi, 0x5c
test eax, eax
je 0x449ec3
movzx ebx, byte [edi]
call sub.cygwin1.dll___locale_ctype_ptr
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
jmp 0x449ec6
mov ecx, ebp
test cl, cl
jne 0x449ca0
movzx edx, byte [esi + 1]
cmp dl, 0x21
jne 0x449f87
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x3c], 1
test eax, eax
je 0x449fb6
call sub.cygwin1.dll___locale_ctype_ptr
movzx eax, byte [esp + 0x18]
mov dword [esp], eax
call sub.cygwin1.dll_tolower
mov byte [esp + 0x18], al
jmp 0x449fb6
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x449c6c
jmp 0x449ca0
mov dword [esp], str.POSIXLY_CORRECT
call sub.cygwin1.dll_getenv
cmp eax, 1
sbb eax, eax
or eax, 1
mov dword [0x478784], eax
jmp 0x449f55
cmp byte [ebx], 0x3a
jne 0x44a013
mov esi, ebx
xor edx, edx
jmp 0x44a1eb
lea ecx, [eax - 0x61]
cmp cl, 0x18
ja 0x44a202
add edx, 1
mov byte [esp + edx + 0x4b], al
cmp edx, 0x100
je 0x449ca0
mov ebp, esi
movzx eax, byte [esi + 1]
add esi, 1
cmp al, 0x3a
jne 0x44a1d0
cmp byte [esi + 1], 0x5d
je 0x44a4c0
mov esi, 0x5b
jmp 0x44a021
call sub.cygwin1.dll___locale_ctype_ptr
mov eax, esi
movzx esi, al
mov dword [esp], esi
call sub.cygwin1.dll_tolower
mov esi, eax
jmp 0x44a021
movzx ecx, byte [ebx + 1]
cmp cl, 0x5d
jne 0x44a03c
mov ebx, ebp
jmp 0x44a013
movzx eax, byte [ebx]
test al, al
je 0x449ca0
mov esi, eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x44a268
add ebx, 1
jmp 0x44a021
call sub.cygwin1.dll___locale_ctype_ptr
mov eax, esi
movzx esi, al
mov dword [esp], esi
call sub.cygwin1.dll_tolower
mov esi, eax
jmp 0x44a25d
movzx eax, byte [ebx + 2]
lea ebp, [ebx + 3]
jmp 0x44a04e
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x449ca0
mov edi, dword [esp + 0x50]
movzx ebp, byte [esp + 0x54]
jmp 0x449c75
cmp byte [esi + 1], 0x28
jne case.0x449c2b.1
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x20]
movzx eax, bl
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x174]
mov dword [esp + 8], ecx
mov ecx, ebp
movzx ebp, cl
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], ebp
mov dword [esp], ecx
mov ecx, edi
call fcn.00449450
cmp eax, 0xffffffff
je case.0x449c2b.1
mov dword [esp + 0x24], eax
jmp 0x449ca8
movzx eax, byte [esp + 0x10]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x20], ebp
cmp al, 0x5d
je 0x44a638
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
jmp 0x44a330
movzx eax, byte [edx]
mov ebx, edx
lea edx, [ebx + 1]
cmp al, 0x5d
je 0x44a634
test al, al
je 0x449ca0
test esi, esi
jne 0x44a340
cmp al, 0x5c
je 0x44a390
cmp al, 0x5b
jne 0x44a320
movzx eax, byte [ebx + 1]
cmp al, 0x3a
je 0x44a44d
cmp al, 0x3d
je 0x44a3a8
cmp al, 0x2e
jne 0x44a320
movzx eax, byte [edx + 1]
test al, al
jne 0x44a377
jmp 0x449ca0
movzx eax, byte [edx + 2]
add edx, 1
test al, al
je 0x449ca0
cmp al, 0x2e
jne 0x44a368
cmp byte [edx + 2], 0x5d
jne 0x44a368
movzx eax, byte [edx + 3]
lea ebx, [edx + 3]
jmp 0x44a325
cmp byte [ebx + 1], 0
je 0x449ca0
movzx eax, byte [ebx + 2]
add ebx, 2
jmp 0x44a325
cmp byte [ebx + 2], 0
je 0x449ca0
cmp byte [ebx + 3], 0x3d
jne 0x449ca0
cmp byte [ebx + 4], 0x5d
jne 0x449ca0
movzx eax, byte [ebx + 5]
add ebx, 5
jmp 0x44a325
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
test ecx, ecx
je 0x449ca0
mov dword [esp + 0x20], ebx
jmp 0x449c6c
mov edi, dword [esp + 0x34]
mov ebx, 0x5b
jmp 0x449c59
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x44a5c1
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x449dc5
mov dword [esp + 0x10], edx
call sub.cygwin1.dll___locale_ctype_ptr
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
mov edx, dword [esp + 0x10]
movzx ebx, al
jmp 0x449dc5
movzx ecx, byte [edx + 1]
lea ebp, [edx + 1]
add edx, 0x100
jmp 0x44a477
sub ecx, 0x61
cmp cl, 0x18
ja 0x44a486
add ebp, 1
movzx ecx, byte [ebp]
cmp ebp, edx
je 0x449ca0
cmp cl, 0x3a
jne 0x44a460
cmp byte [ebp + 1], 0x5d
je 0x44a6cf
lea ebp, [ebx - 1]
lea ebx, [ebp + 2]
jmp 0x44a325
call sub.cygwin1.dll___locale_ctype_ptr
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
cmp dword [esp + 0x1c], edi
je 0x449ca0
movzx ebx, byte [edi]
movzx esi, al
call sub.cygwin1.dll___locale_ctype_ptr
mov dword [esp], ebx
call sub.cygwin1.dll_tolower
jmp 0x449ec6
lea eax, [esp + 0x4c]
mov byte [esp + edx + 0x4c], 0
mov dword [esp], eax
call sub.cygwin1.dll_wctype
mov ebx, eax
test eax, eax
je 0x449ca0
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
mov dword [esp], eax
call sub.cygwin1.dll_btowc
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.cygwin1.dll_iswctype
test eax, eax
jne 0x44a745
movzx edx, byte [esi + 2]
lea ebx, [esi + 3]
jmp 0x449fec
cmp byte [esi + 1], 0x28
jne 0x449ccb
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x20]
mov ecx, edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 8], eax
mov eax, ebp
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, 0x2a
call fcn.00449450
cmp eax, 0xffffffff
je 0x449cda
jmp 0x44a2f1
cmp byte [esi + 1], 0x28
jne 0x449ee6
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x20]
mov ecx, edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 8], eax
mov eax, ebp
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, 0x3f
call fcn.00449450
cmp eax, 0xffffffff
je 0x449ee6
jmp 0x44a2f1
xor eax, eax
cmp byte [edi], 0x2f
setne al
mov dword [esp + 0x24], eax
jmp 0x449ca8
mov esi, edx
cmp dword [esp + 0x1c], edi
ja 0x44a5dd
jmp 0x449ca0
add edi, 1
cmp dword [esp + 0x1c], edi
je 0x449ca0
cmp byte [edi], 0x2f
jne 0x44a5d0
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jbe 0x449ca0
mov eax, dword [esp + 0x17c]
mov dword [esp + 8], 0
lea edx, [edi + 1]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 4], eax
shr eax, 2
and eax, 1
mov dword [esp], eax
mov eax, esi
call fcn.00449b90
test eax, eax
jne 0x449ca0
mov dword [esp + 0x24], 0
jmp 0x449ca8
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x449c6c
jmp 0x449ca0
lea eax, [ebx - 0x21]
cmp al, 0x1f
ja 0x449d8a
mov ecx, 0x80000401
bt ecx, eax
jae 0x449d8a
cmp byte [edx], 0x28
jne 0x449d8a
lea ebx, [edx - 1]
cmp esi, edi
jbe 0x449ca0
lea eax, [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, ebp
mov ebp, esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x17c]
movzx eax, al
mov edx, edi
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov ecx, esi
call fcn.00449b90
test eax, eax
je 0x449e50
add edi, 1
xor eax, eax
cmp ebp, edi
jne 0x44a68d
jmp 0x449ca0
movzx eax, byte [ebp + 2]
jmp 0x44a489
mov eax, dword [esp + 0x178]
mov dword [esp + 0x24], 0
mov dword [eax + 4], edi
mov edi, eax
mov dword [eax], esi
mov eax, ebp
mov byte [edi + 8], al
jmp 0x449ca8
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x449ca8
mov dword [esp + 0x24], 0
test byte [esp + 0x174], 8
jne 0x449ca8
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x2f
mov dword [esp], edi
sub eax, edi
mov dword [esp + 8], eax
call sub.cygwin1.dll_memchr
test eax, eax
setne al
movzx eax, al
mov dword [esp + 0x24], eax
jmp 0x449ca8
movzx eax, byte [ebp + 3]
lea ebx, [ebp + 3]
mov edi, dword [esp + 0x34]
add ebp, 4
jmp 0x44a309