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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x25c
mov esi, dword [esp + 0x270]
mov ebp, dword [esp + 0x280]
mov edi, dword [esp + 0x274]
movzx edx, word [esi]
add esi, 2
test dx, dx
movzx ebx, dx
je 0x418780
jmp 0x418610
mov dword [esp + 0x3c], 0
test ebp, 0x10
jne 0x419068
lea eax, [ebx - 0x21]
cmp eax, 0x3b
ja case.0x418630.34
jmp dword [eax*4 + 0x418638]
test ebp, 0x20
jne 0x4187d0
cmp edi, dword [esp + 0x278]
mov ecx, 1
je 0x41879b
movzx eax, word [edi]
cmp ax, 0x2f
je 0x4187c0
cmp ax, 0x2e
je 0x4187a8
jmp 0x418760
movzx ecx, word [esi]
add edi, 2
mov ebx, dword [esp + 0x3c]
add esi, 2
test cx, cx
mov dword [esp + 0x27c], ebx
movzx ebx, cx
jne 0x418610
xor ecx, ecx
cmp edi, dword [esp + 0x278]
je 0x41879b
and ebp, 8
je 0x418796
cmp word [edi], 0x2f
je 0x41879b
mov ecx, 1
add esp, 0x25c
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x27c]
mov ecx, 1
test ebx, ebx
je 0x418760
jmp 0x41879b
test ebp, 1
je 0x41874b
jmp 0x41879b
cmp word [esi], 0x28
jne 0x418734
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x27c]
mov eax, dword [esp + 0x278]
mov dword [esp + 8], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00419180
cmp eax, 0xffffffff
mov ecx, eax
je 0x418734
jmp 0x41879b
test ebp, 0x20
jne 0x418b41
cmp edi, dword [esp + 0x278]
je 0x418830
cmp word [edi], 0x2e
je 0x418b28
movzx ebx, word [esi]
add esi, 2
cmp bx, 0x3f
je 0x418ac0
cmp bx, 0x2a
je 0x418ac0
test bx, bx
jne 0x41889a
mov ebx, ebp
and ebx, 1
je 0x41885d
and ebp, 8
je 0x418864
xor ebx, ebx
mov ecx, ebx
jmp 0x41879b
sub dword [esp + 0x278], edi
mov dword [esp + 4], 0x2f
mov dword [esp], edi
sar dword [esp + 0x278], 1
mov ebp, dword [esp + 0x278]
mov dword [esp + 8], ebp
call fcn.00422970
test eax, eax
sete cl
movzx esi, cl
dec esi
and ebx, esi
jmp 0x41885d
mov dword [esp], edi
mov ecx, dword [esp + 0x278]
xor edx, edx
sub ecx, edi
sar ecx, 1
test ebp, 1
sete dl
mov dword [esp + 8], ecx
dec edx
and edx, 0x2f
mov dword [esp + 4], edx
call fcn.00422970
mov dword [esp + 0x38], eax
test eax, eax
je 0x418aab
cmp bx, 0x5b
je 0x418a54
test ebp, 0x20
jne 0x418a34
cmp bx, 0x2f
je 0x4189ba
mov dword [esp + 0x34], ebp
test ebp, 1
jne 0x418905
mov edx, ebp
and edx, 0xfffffffb
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x27c]
cmp bx, 0x5c
mov dword [esp + 0x30], eax
je 0x4189a6
test ebp, 0x10
jne 0x418996
sub esi, 2
cmp edi, dword [esp + 0x38]
jae 0x418796
test ebp, 0x10
jne 0x418986
movzx eax, word [edi]
cmp eax, ebx
je 0x418954
mov dword [esp + 0x30], 0
add edi, 2
cmp edi, dword [esp + 0x38]
jb 0x41892f
jmp 0x418796
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov dword [esp], esi
mov edx, dword [esp + 0x278]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
call fcn.004185d0
xor ecx, ecx
test eax, eax
jne 0x41893e
jmp 0x41879b
movzx ecx, word [edi]
mov dword [esp], ecx
call sub.msvcrt.dll_towlower
movzx eax, ax
jmp 0x41893a
mov dword [esp], ebx
call sub.msvcrt.dll_towlower
movzx ebx, ax
jmp 0x418922
test ebp, 2
jne 0x41891a
movzx ebx, word [esi]
jmp 0x41891a
test ebp, 1
je 0x4188f0
cmp edi, dword [esp + 0x278]
jae 0x418796
cmp word [edi], 0x2f
je 0x4189ef
add edi, 2
cmp edi, dword [esp + 0x278]
jae 0x418796
cmp word [edi], 0x2f
jne 0x4189d9
cmp edi, dword [esp + 0x278]
jae 0x418796
cmp word [edi], 0x2f
jne 0x418796
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x278]
lea ebx, [edi + 2]
mov dword [esp + 4], ebx
and ebp, 4
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ecx
mov dword [esp], esi
call fcn.004185d0
xor ecx, ecx
test eax, eax
jmp 0x418794
cmp bx, 0x40
je 0x418a4a
cmp bx, 0x2b
je 0x418a4a
cmp bx, 0x21
jne 0x4188e6
cmp word [esi], 0x28
jne 0x4188e6
mov ebx, ebp
and ebp, 1
jne 0x418a5e
and ebx, 0xfffffffb
sub esi, 2
mov eax, dword [esp + 0x27c]
cmp edi, dword [esp + 0x38]
jae 0x418796
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x278]
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp], esi
call fcn.004185d0
xor ecx, ecx
test eax, eax
je 0x41879b
add edi, 2
xor eax, eax
cmp edi, dword [esp + 0x38]
jb 0x418a72
jmp 0x418796
mov eax, dword [esp + 0x278]
mov dword [esp + 0x38], eax
jmp 0x4188d0
cmp word [esi], 0x28
je 0x418b10
cmp bx, 0x3f
je 0x418ae3
movzx ebx, word [esi]
add esi, 2
cmp bx, 0x3f
je 0x418ac0
cmp bx, 0x2a
je 0x418ac0
jmp 0x41884a
cmp edi, dword [esp + 0x278]
mov ecx, 1
je 0x41879b
cmp word [edi], 0x2f
je 0x418b00
add edi, 2
jmp 0x418acc
test ebp, 1
je 0x418afb
jmp 0x41879b
test ebp, 0x20
je 0x418ac6
mov dword [esp], esi
call fcn.00419080
cmp eax, esi
je 0x418ac6
mov esi, eax
jmp 0x418acc
mov ebx, dword [esp + 0x27c]
mov ecx, 1
test ebx, ebx
jne 0x41879b
jmp 0x418830
cmp word [esi], 0x28
jne 0x41881d
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x27c]
mov eax, dword [esp + 0x278]
mov dword [esp + 8], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00419180
cmp eax, 0xffffffff
mov ecx, eax
jne 0x41879b
jmp 0x41881d
mov ecx, ebp
and ecx, 5
cmp ecx, 5
je 0x418bc5
nop
cmp edi, dword [esp + 0x278]
je 0x418796
test ebp, 0x10
jne 0x418bb5
movzx eax, word [edi]
cmp ebx, eax
je 0x418760
jmp 0x418796
movzx edx, word [edi]
mov dword [esp], edx
call sub.msvcrt.dll_towlower
movzx eax, ax
jmp 0x418ba8
cmp edi, dword [esp + 0x278]
je 0x418796
cmp word [edi], bx
jne 0x418796
mov dword [esp + 0x3c], 1
jmp 0x418760
test ebp, 0x20
je case.0x418630.34
cmp word [esi], 0x28
jne case.0x418630.34
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x278]
mov edx, dword [esp + 0x27c]
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00419180
cmp eax, 0xffffffff
mov ecx, eax
je case.0x418630.34
jmp 0x41879b
mov ebx, dword [0x425390]
test ebx, ebx
je 0x418fe5
cmp edi, dword [esp + 0x278]
mov ecx, 1
je 0x41879b
movzx eax, word [edi]
cmp ax, 0x2e
je 0x418fd1
cmp ax, 0x2f
je 0x418fbb
movzx edx, word [esi]
mov dword [esp + 0x2c], 0
cmp dx, 0x21
je 0x418fab
mov ebx, dword [0x425390]
test ebx, ebx
js 0x418fa1
movzx edx, ax
test ebp, 0x10
mov dword [esp + 0x28], edx
jne 0x418f8d
movzx ebx, word [esi]
add esi, 2
lea esi, [esi]
lea edi, [edi]
test ebp, 2
jne 0x418cc2
cmp bx, 0x5c
je 0x418f50
cmp bx, 0x5b
je 0x418eb0
test bx, bx
mov ecx, 1
je 0x41879b
test ebp, 0x10
jne 0x418ea0
movzx eax, word [esi]
cmp ax, 0x2d
mov ecx, eax
je 0x418e80
cmp bx, word [esp + 0x28]
je 0x418d6e
mov edx, ebx
add esi, 2
movzx ebx, cx
cmp bx, 0x2d
je 0x418d26
cmp bx, 0x5d
jne 0x418cb0
mov ebx, dword [esp + 0x2c]
mov ecx, 1
test ebx, ebx
jne 0x418760
jmp 0x41879b
movzx eax, word [esi]
cmp ax, 0x5d
je 0x418d0a
add esi, 2
movzx eax, ax
test ebp, 2
jne 0x418d47
cmp ax, 0x5c
je 0x418e70
test ax, ax
mov ecx, 1
je 0x41879b
cmp dx, word [esp + 0x28]
ja 0x418d63
cmp word [esp + 0x28], ax
jbe 0x418d6b
movzx ebx, word [esi]
add esi, 2
jmp 0x418d0a
movzx eax, word [esi]
movzx ebx, ax
add esi, 2
test bx, bx
mov ecx, 1
je 0x41879b
test ebp, 2
jne 0x418d94
cmp bx, 0x5c
je 0x418e62
cmp bx, 0x5b
je 0x418db0
cmp bx, 0x5d
jne 0x418d6b
mov ebx, dword [esp + 0x2c]
jmp 0x4187af
movzx eax, word [esi]
cmp ax, 0x3a
je 0x418e20
cmp ax, 0x3d
je 0x418def
cmp ax, 0x2e
jne 0x418d9a
add esi, 2
add esi, 2
movzx eax, word [esi]
test ax, ax
je 0x418796
cmp ax, 0x2e
jne 0x418dc8
cmp word [esi + 2], 0x5d
jne 0x418dc8
add esi, 4
movzx ebx, word [esi]
add esi, 2
jmp 0x418d9a
add esi, 2
mov ecx, 1
movzx eax, word [esi]
test ax, ax
je 0x41879b
add esi, 2
movzx edx, word [esi]
cmp dx, 0x3d
jne 0x418796
cmp word [esi + 2], 0x5d
je 0x418de4
jmp 0x418796
mov dword [esp + 0x20], esi
xor edx, edx
add esi, 2
inc edx
cmp edx, 0x100
movzx eax, word [esi]
mov ecx, 1
movzx ebx, ax
je 0x41879b
cmp ax, 0x3a
je 0x418e59
lea ecx, [ebx - 0x61]
cmp cx, 0x18
jbe 0x418e26
mov esi, dword [esp + 0x20]
jmp 0x418d6b
cmp word [esi + 2], 0x5d
jne 0x418e47
jmp 0x418de4
cmp word [esi], 0
jne 0x418dea
jmp 0x418796
movzx eax, word [esi]
add esi, 2
jmp 0x418d47
movzx edx, word [esi + 2]
test dx, dx
je 0x418cf5
cmp dx, 0x5d
jne 0x418cfc
jmp 0x418cf5
mov dword [esp], ebx
call sub.msvcrt.dll_towlower
movzx ebx, ax
jmp 0x418ce6
cmp word [esi], 0x3a
jne 0x418ccc
mov dword [esp + 0x24], esi
xor edx, edx
cmp edx, 0x100
mov ecx, 1
je 0x41879b
add esi, 2
movzx ebx, word [esi]
cmp bx, 0x3a
je 0x418f00
lea ecx, [ebx - 0x61]
cmp cx, 0x18
ja 0x418eee
mov word [esp + edx*2 + 0x40], bx
inc edx
jmp 0x418ec0
mov esi, dword [esp + 0x24]
mov ebx, 0x5b
jmp 0x418ce6
cmp word [esi + 2], 0x5d
jne 0x418edd
mov word [esp + edx*2 + 0x40], 0
lea ebx, [esp + 0x40]
add esi, 4
mov dword [esp], ebx
call fcn.004199f0
movzx eax, ax
mov ecx, 1
test ax, ax
je 0x41879b
mov dword [esp + 4], eax
movzx edx, word [edi]
mov dword [esp], edx
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x418d63
jmp 0x418d6b
movzx eax, word [esi]
mov ecx, 1
test ax, ax
je 0x41879b
test ebp, 0x10
movzx ebx, ax
jne 0x418f80
add esi, 2
cmp bx, word [esp + 0x28]
jne 0x418d0a
jmp 0x418d6b
mov dword [esp], ebx
call sub.msvcrt.dll_towlower
movzx ebx, ax
jmp 0x418f6c
mov dword [esp], edx
call sub.msvcrt.dll_towlower
movzx ecx, ax
mov dword [esp + 0x28], ecx
jmp 0x418c9d
cmp dx, 0x5e
jne 0x418c8a
mov dword [esp + 0x2c], 1
add esi, 2
jmp 0x418c8a
test ebp, 1
mov ecx, 1
je 0x418c67
jmp 0x41879b
mov edx, dword [esp + 0x27c]
test edx, edx
je 0x418c5d
jmp 0x41879b
mov dword [esp], 0x417170
call sub.msvcrt.dll_getenv
test eax, eax
setne bl
movzx ecx, bl
lea edx, [ecx + ecx - 1]
mov dword [0x425390], edx
jmp 0x418c3e
test ebp, 2
jne 0x41902c
movzx ebx, word [esi]
mov ecx, 1
add esi, 2
test bx, bx
je 0x41879b
test ebp, 0x10
jne 0x41905b
cmp edi, dword [esp + 0x278]
je 0x418796
test ebp, 0x10
jne 0x41904b
movzx eax, word [edi]
cmp eax, ebx
jmp 0x418baa
movzx ecx, word [edi]
mov dword [esp], ecx
call sub.msvcrt.dll_towlower
movzx eax, ax
jmp 0x419044
mov dword [esp], ebx
call sub.msvcrt.dll_towlower
movzx ebx, ax
jmp 0x41902c
mov dword [esp], ebx
call sub.msvcrt.dll_towlower
movzx ebx, ax
jmp 0x418624