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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x15c
mov esi, dword [esp + 0x170]
mov ebp, dword [esp + 0x180]
mov edi, dword [esp + 0x174]
movzx ebx, byte [esi]
inc esi
test bl, bl
je 0x417348
nop
lea esi, [esi]
mov dword [esp + 0x3c], 0
test ebp, 0x10
je 0x4171ea
mov ecx, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx edx, bl
cmp dword [ecx], 1
je 0x417dc4
mov dword [esp + 4], 1
mov dword [esp], edx
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x417db0
mov byte [esp + 0x3b], bl
movzx ebx, byte [esp + 0x3b]
movzx eax, bl
sub eax, 0x21
cmp eax, 0x3b
ja case.0x417202.34
jmp dword [eax*4 + 0x41720c]
test ebp, 0x20
jne 0x417390
cmp edi, dword [esp + 0x178]
mov ecx, 1
je 0x417362
movzx edx, byte [edi]
cmp dl, 0x2f
je 0x417381
cmp dl, 0x2e
je 0x41736f
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esp + 0x3c]
inc edi
mov dword [esp + 0x17c], edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4171b0
xor ecx, ecx
cmp edi, dword [esp + 0x178]
je 0x417362
and ebp, 8
je 0x41735d
cmp byte [edi], 0x2f
je 0x417362
mov ecx, 1
add esp, 0x15c
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x17c]
mov ecx, 1
test ebx, ebx
je 0x417330
jmp 0x417362
test ebp, 1
je 0x41731e
jmp 0x417362
cmp byte [esi], 0x28
jne 0x417308
movzx ebx, byte [esp + 0x3b]
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x178]
mov dword [esp + 8], edi
mov edx, dword [esp + 0x17c]
mov dword [esp + 4], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp], ebx
call fcn.00417fa0
cmp eax, 0xffffffff
mov ecx, eax
je 0x417308
jmp 0x417362
test ebp, 0x20
jne 0x417758
cmp edi, dword [esp + 0x178]
je 0x4173f3
cmp byte [edi], 0x2e
je 0x41773f
movzx ebx, byte [esi]
inc esi
cmp bl, 0x3f
je 0x4176e0
cmp bl, 0x2a
je 0x4176e0
test bl, bl
jne 0x417451
mov ebx, ebp
and ebx, 1
je 0x41741b
and ebp, 8
je 0x417422
xor ebx, ebx
mov ecx, ebx
jmp 0x417362
sub dword [esp + 0x178], edi
mov dword [esp + 4], 0x2f
mov dword [esp], edi
mov ebp, dword [esp + 0x178]
mov dword [esp + 8], ebp
call sub.msvcrt.dll_memchr
test eax, eax
sete dl
movzx esi, dl
dec esi
and ebx, esi
jmp 0x41741b
mov dword [esp], edi
mov edx, dword [esp + 0x178]
xor ecx, ecx
sub edx, edi
test ebp, 1
sete cl
mov dword [esp + 8], edx
dec ecx
and ecx, 0x2f
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memchr
mov dword [esp + 0x34], eax
test eax, eax
je 0x4176cf
cmp bl, 0x5b
je 0x41767c
test ebp, 0x20
jne 0x417660
cmp bl, 0x2f
je 0x4175e9
mov dword [esp + 0x30], ebp
test ebp, 1
jne 0x4174b8
mov ecx, ebp
and ecx, 0xfffffffb
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x17c]
cmp bl, 0x5c
mov dword [esp + 0x2c], edx
je 0x4175d5
test ebp, 0x10
je 0x4174fe
mov ecx, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx edx, bl
cmp dword [ecx], 1
je 0x4175c2
mov dword [esp + 4], 1
mov dword [esp], edx
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x4175b2
mov al, bl
dec esi
cmp edi, dword [esp + 0x34]
jae 0x41735d
movzx ebx, al
test ebp, 0x10
je 0x4175ad
movzx edx, byte [edi]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx ecx, dl
cmp dword [eax], 1
je 0x41759d
mov dword [esp + 4], 1
mov dword [esp], ecx
call sub.msvcrt.dll__isctype
movzx edx, byte [edi]
test eax, eax
jne 0x417590
movzx eax, dl
cmp eax, ebx
je 0x41755c
mov dword [esp + 0x2c], 0
inc edi
cmp edi, dword [esp + 0x34]
jb 0x41750e
jmp 0x41735d
mov dword [esp + 4], edi
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x178]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
call fcn.00417180
xor ecx, ecx
test eax, eax
jne 0x417548
jmp 0x417362
movzx ecx, dl
mov dword [esp], ecx
call sub.msvcrt.dll_tolower
jmp 0x417544
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + ecx*2]
and eax, 1
jmp 0x41753d
movzx edx, byte [edi]
jmp 0x417541
movzx edx, bl
mov dword [esp], edx
call sub.msvcrt.dll_tolower
jmp 0x417500
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov ecx, dword [eax]
movzx eax, word [ecx + edx*2]
and eax, 1
jmp 0x4174f6
test ebp, 2
jne 0x4174cc
movzx ebx, byte [esi]
jmp 0x4174cc
test ebp, 1
je 0x4174a3
cmp edi, dword [esp + 0x178]
jae 0x41735d
cmp byte [edi], 0x2f
je 0x41761a
inc edi
cmp edi, dword [esp + 0x178]
jae 0x41735d
cmp byte [edi], 0x2f
jne 0x417607
cmp edi, dword [esp + 0x178]
jae 0x41735d
cmp byte [edi], 0x2f
jne 0x41735d
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x178]
lea ebx, [edi + 1]
mov dword [esp + 4], ebx
and ebp, 4
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp], esi
call fcn.00417180
xor ecx, ecx
test eax, eax
jmp 0x41735b
cmp bl, 0x40
je 0x417673
cmp bl, 0x2b
je 0x417673
cmp bl, 0x21
jne 0x41749a
cmp byte [esi], 0x28
jne 0x41749a
mov ebx, ebp
and ebp, 1
jne 0x417686
and ebx, 0xfffffffb
dec esi
mov eax, dword [esp + 0x17c]
cmp edi, dword [esp + 0x34]
jae 0x41735d
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x178]
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp], esi
call fcn.00417180
xor ecx, ecx
test eax, eax
je 0x417362
inc edi
xor eax, eax
cmp edi, dword [esp + 0x34]
jb 0x417698
jmp 0x41735d
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x34], ecx
jmp 0x417485
cmp byte [esi], 0x28
je 0x417727
cmp bl, 0x3f
je 0x417700
movzx ebx, byte [esi]
inc esi
cmp bl, 0x3f
je 0x4176e0
cmp bl, 0x2a
je 0x4176e0
jmp 0x417409
cmp edi, dword [esp + 0x178]
mov ecx, 1
je 0x417362
cmp byte [edi], 0x2f
je 0x41771a
inc edi
jmp 0x4176ea
test ebp, 1
je 0x417717
jmp 0x417362
test ebp, 0x20
je 0x4176e5
mov dword [esp], esi
call fcn.00417de0
cmp eax, esi
je 0x4176e5
mov esi, eax
jmp 0x4176ea
mov ebx, dword [esp + 0x17c]
mov ecx, 1
test ebx, ebx
jne 0x417362
jmp 0x4173f3
cmp byte [esi], 0x28
jne 0x4173e1
movzx ebx, byte [esp + 0x3b]
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x17c]
mov dword [esp + 8], edi
mov edx, dword [esp + 0x178]
mov dword [esp + 4], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp], ebx
call fcn.00417fa0
cmp eax, 0xffffffff
mov ecx, eax
jne 0x417362
jmp 0x4173e1
mov ecx, ebp
and ecx, 5
cmp ecx, 5
je 0x417825
lea esi, [esi]
cmp edi, dword [esp + 0x178]
je 0x41735d
movzx ebx, byte [esp + 0x3b]
test ebp, 0x10
je 0x417820
movzx edx, byte [edi]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx ecx, dl
cmp dword [eax], 1
je 0x417810
mov dword [esp + 4], 1
mov dword [esp], ecx
call sub.msvcrt.dll__isctype
movzx edx, byte [edi]
test eax, eax
jne 0x417801
movzx eax, dl
cmp ebx, eax
je 0x417330
jmp 0x41735d
movzx ecx, dl
mov dword [esp], ecx
call sub.msvcrt.dll_tolower
jmp 0x4177f4
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + ecx*2]
and eax, 1
jmp 0x4177ed
movzx edx, byte [edi]
jmp 0x4177f1
cmp edi, dword [esp + 0x178]
je 0x41735d
movzx ebx, byte [esp + 0x3b]
cmp bl, byte [edi]
jne 0x41735d
mov dword [esp + 0x3c], 1
jmp 0x417330
test ebp, 0x20
je case.0x417202.34
cmp byte [esi], 0x28
jne case.0x417202.34
movzx ecx, byte [esp + 0x3b]
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x17c]
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x178]
mov dword [esp + 4], esi
mov dword [esp], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
call fcn.00417fa0
cmp eax, 0xffffffff
mov ecx, eax
je case.0x417202.34
jmp 0x417362
mov ebx, dword [0x425390]
test ebx, ebx
je 0x417cb4
cmp edi, dword [esp + 0x178]
mov ecx, 1
je 0x417362
movzx edx, byte [edi]
cmp dl, 0x2e
mov bl, dl
je 0x417ca0
cmp dl, 0x2f
je 0x417c8a
mov dword [esp + 0x28], 0
movzx eax, byte [esi]
cmp al, 0x21
je 0x417c7c
mov ecx, dword [0x425390]
test ecx, ecx
js 0x417c74
test ebp, 0x10
je 0x41792d
movzx ecx, bl
mov ebx, dword [sym.imp.msvcrt.dll___mb_cur_max]
cmp dword [ebx], 1
je 0x417c61
mov dword [esp + 4], 1
mov dword [esp], ecx
call sub.msvcrt.dll__isctype
movzx edx, byte [edi]
test eax, eax
jne 0x417c4d
mov byte [esp + 0x27], dl
movzx ebx, byte [esi]
inc esi
lea esi, [esi]
lea edi, [edi]
test ebp, 2
jne 0x417951
cmp bl, 0x5c
je 0x417bd8
cmp bl, 0x5b
je 0x417b40
test bl, bl
mov ecx, 1
je 0x417362
test ebp, 0x10
je 0x417999
mov ecx, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx edx, bl
cmp dword [ecx], 1
je 0x417b29
mov dword [esp + 4], 1
mov dword [esp], edx
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x417b19
mov al, bl
mov bl, al
movzx edx, byte [esi]
cmp dl, 0x2d
mov cl, dl
je 0x417b00
cmp bl, byte [esp + 0x27]
je 0x417a18
inc esi
mov dl, bl
cmp cl, 0x2d
mov bl, cl
je 0x4179d6
cmp bl, 0x5d
jne 0x417940
mov ebx, dword [esp + 0x28]
mov ecx, 1
test ebx, ebx
jne 0x417330
jmp 0x417362
movzx eax, byte [esi]
cmp al, 0x5d
je 0x4179bb
inc esi
mov bl, al
test ebp, 2
jne 0x4179f0
cmp al, 0x5c
je 0x417af0
test bl, bl
mov ecx, 1
je 0x417362
movzx ecx, byte [esp + 0x27]
movsx eax, dl
cmp eax, ecx
jg 0x417a0f
cmp byte [esp + 0x27], bl
jbe 0x417a15
movzx ebx, byte [esi]
inc esi
jmp 0x4179bb
movzx edx, byte [esi]
inc esi
mov bl, dl
test dl, dl
mov ecx, 1
je 0x417362
test ebp, 2
jne 0x417a39
cmp dl, 0x5c
je 0x417ae0
cmp dl, 0x5b
je 0x417a53
cmp bl, 0x5d
jne 0x417a15
mov edx, dword [esp + 0x28]
mov ecx, 1
test edx, edx
jmp 0x41737d
movzx eax, byte [esi]
cmp al, 0x3a
je 0x417aa7
cmp al, 0x3d
je 0x417a88
cmp al, 0x2e
jne 0x417a3e
inc esi
inc esi
mov ecx, 1
movzx ebx, byte [esi]
test bl, bl
je 0x417362
cmp bl, 0x2e
jne 0x417a63
cmp byte [esi + 1], 0x5d
jne 0x417a63
add esi, 2
movzx ebx, byte [esi]
inc esi
jmp 0x417a3e
inc esi
cmp byte [esi], 0
je 0x41735d
inc esi
cmp byte [esi], 0x3d
jne 0x41735d
cmp byte [esi + 1], 0x5d
je 0x417a7f
jmp 0x41735d
xor eax, eax
mov edx, esi
inc eax
inc esi
cmp eax, 0x100
movzx ebx, byte [esi]
mov ecx, 1
je 0x417362
cmp bl, 0x3a
je 0x417ad4
sub bl, 0x61
cmp bl, 0x18
jbe 0x417aab
mov esi, edx
jmp 0x417a15
cmp byte [esi + 1], 0x5d
jne 0x417ac5
jmp 0x417a7f
cmp byte [esi], 0
jne 0x417a85
jmp 0x41735d
movzx ebx, byte [esi]
inc esi
jmp 0x4179f0
movzx eax, byte [esi + 1]
test al, al
je 0x4179ab
cmp al, 0x5d
jne 0x4179b1
jmp 0x4179ab
movzx edx, bl
mov dword [esp], edx
call sub.msvcrt.dll_tolower
jmp 0x41799b
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov ecx, dword [eax]
movzx eax, word [ecx + edx*2]
and eax, 1
jmp 0x417991
cmp byte [esi], 0x3a
jne 0x41795a
mov dword [esp + 0x20], esi
xor edx, edx
nop
cmp edx, 0x100
mov ecx, 1
je 0x417362
inc esi
movzx ebx, byte [esi]
cmp bl, 0x3a
je 0x417b86
mov cl, bl
sub cl, 0x61
cmp cl, 0x18
ja 0x417b7b
mov byte [esp + edx + 0x40], bl
inc edx
jmp 0x417b50
mov esi, dword [esp + 0x20]
mov bl, 0x5b
jmp 0x41799d
cmp byte [esi + 1], 0x5d
jne 0x417b6a
mov byte [esp + edx + 0x40], 0
add esi, 2
lea edx, [esp + 0x40]
mov dword [esp], edx
call sub.MSVCP60.DLL_wctype
movzx ebx, ax
mov ecx, 1
test bx, bx
je 0x417362
movzx edx, byte [edi]
mov dword [esp], edx
call sub.MSVCP60.DLL_btowc
mov dword [esp + 4], ebx
movzx ecx, ax
mov dword [esp], ecx
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x417a0f
jmp 0x417a15
movzx edx, byte [esi]
mov ecx, 1
test dl, dl
je 0x417362
test ebp, 0x10
je 0x417c15
mov ebx, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx ecx, dl
cmp dword [ebx], 1
je 0x417c3d
mov dword [esp + 4], 1
mov dword [esp], ecx
call sub.msvcrt.dll__isctype
movzx edx, byte [esi]
test eax, eax
jne 0x417c30
mov al, dl
inc esi
mov bl, al
cmp al, byte [esp + 0x27]
jne 0x4179bb
jmp 0x417a15
movzx ecx, dl
mov dword [esp], ecx
call sub.msvcrt.dll_tolower
jmp 0x417c17
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov ebx, dword [eax]
movzx eax, word [ebx + ecx*2]
and eax, 1
jmp 0x417c11
movzx ecx, dl
mov dword [esp], ecx
call sub.msvcrt.dll_tolower
mov byte [esp + 0x27], al
jmp 0x417931
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov ebx, dword [eax]
movzx eax, word [ebx + ecx*2]
and eax, 1
jmp 0x417925
cmp al, 0x5e
jne 0x4178f8
mov dword [esp + 0x28], 1
inc esi
jmp 0x4178f8
test ebp, 1
mov ecx, 1
je 0x4178d7
jmp 0x417362
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x4178ce
jmp 0x417362
mov dword [esp], 0x417170
call sub.msvcrt.dll_getenv
test eax, eax
setne bl
movzx edx, bl
lea ecx, [edx + edx - 1]
mov dword [0x425390], ecx
jmp 0x4178ae
test ebp, 2
jne 0x417d22
movzx ebx, byte [esi]
mov ecx, 1
inc esi
test bl, bl
je 0x417362
test ebp, 0x10
je 0x417d1e
mov ecx, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx edx, bl
cmp dword [ecx], 1
je 0x417d9a
mov dword [esp + 4], 1
mov dword [esp], edx
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x417d8d
mov al, bl
mov bl, al
cmp edi, dword [esp + 0x178]
je 0x41735d
test ebp, 0x10
movzx ebx, bl
je 0x417d88
movzx edx, byte [edi]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
movzx ecx, dl
cmp dword [eax], 1
je 0x417d78
mov dword [esp + 4], 1
mov dword [esp], ecx
call sub.msvcrt.dll__isctype
movzx edx, byte [edi]
test eax, eax
jne 0x417d6b
movzx eax, dl
cmp eax, ebx
jmp 0x4177f6
movzx ecx, dl
mov dword [esp], ecx
call sub.msvcrt.dll_tolower
jmp 0x417d64
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + ecx*2]
and eax, 1
jmp 0x417d5d
movzx edx, byte [edi]
jmp 0x417d61
movzx edx, bl
mov dword [esp], edx
call sub.msvcrt.dll_tolower
jmp 0x417d20
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov ecx, dword [eax]
movzx eax, word [ecx + edx*2]
and eax, 1
jmp 0x417d1a
movzx edx, bl
mov dword [esp], edx
call sub.msvcrt.dll_tolower
mov byte [esp + 0x3b], al
jmp 0x4171ee
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov ecx, dword [eax]
movzx eax, word [ecx + edx*2]
and eax, 1
jmp 0x4171e2